使用Linux掛載NAS硬碟的RAID分割槽

2021-10-14 11:10:50 字數 3896 閱讀 2865

背景

最近在研究各種nas,包括我的d-link dns-320和群暉的dsm,使用nas是為了給資料儲存提供方便和安全保障,當然前提是不能被某個技術或產品綁架,尤其對於我們搞開源的工程師來說,更是如此。我比較關注我的資料安全,我會考慮如果某天我的nas壞掉了,資料是否能夠在其他裝置上讀取出來,這是蠻重要的事情。

因此我對dns-320和群暉dsm系統做了這方面的驗證,結果證明它們都使用了開源的raid方案,因此我可以很方便地在linux系統下訪問這些raid分割槽。

試驗環境

下面的操作以dns-320建立的raid1分割槽為例,群暉dsm也是類似的,只是元資料目錄結構會有些差異,但基本大同小異。linux系統我用的是centos 8.1,其他發行版也都有類似功能。

掛載步驟

首先,硬體連線物理硬碟到主機,linux正常識別到硬碟及raid分割槽(/dev/sdb2),這一步通過分割槽大小就能判斷:

[root@scvm-cnt8-01 ~]# lsblk

name maj:min rm size ro type mountpoint

sda 8:0 0 16g 0 disk

├─sda1 8:1 0 600m 0 part /boot/efi

├─sda2 8:2 0 1g 0 part /boot

└─sda3 8:3 0 14.4g 0 part

├─cl-root 253:0 0 12.8g 0 lvm /

└─cl-swap 253:1 0 1.6g 0 lvm [swap]

sdb 8:16 0 1.8t 0 disk

├─sdb1 8:17 0 512m 0 part

├─sdb2 8:18 0 200g 0 part

├─sdb3 8:19 0 1.6t 0 part

└─sdb4 8:20 0 1g 0 part

sr0 11:0 1 1024m 0 rom12

3456

78910

1112

1314

其次,嘗試掛載raid分割槽。但raid分割槽並不能直接掛載,會報錯:

[root@scvm-cnt8-01 ~]# mkdir /mnt/raidcheck

[root@scvm-cnt8-01 ~]# mount /dev/sdb2 /mnt/raidcheck

mount: /mnt/raidcheck: unknown filesystem type 『linux_raid_member』.12

3因此,需要使用mdadm命令還原raid分割槽:

[root@scvm-cnt8-01 ~]# yum install -y mdadm

…complete!

[root@scvm-cnt8-01 ~]# mdadm --assemble --run /dev/md2 /dev/sdb2

mdadm: /dev/md2 has been started with 1 drive (out of 2).12

345再次將raid分割槽掛載到系統中:

[root@scvm-cnt8-01 ~]# mount /dev/md2 /mnt/raidcheck

1檢查raid分割槽中的檔案:

[root@scvm-cnt8-01 ~]# ll /mnt/raidcheck/

total 24

drwx------. 2 root root 16384 apr 20 02:52 lost+found

drwxrwxrwx. 3 root root 4096 apr 20 03:03 nas_prog

drwxrwxrwx. 2 501 501 4096 apr 20 22:56 raid1_test_data

[root@scvm-cnt8-01 ~]# ll /mnt/raidcheck/raid1_test_data/

total 238660

-rwxrwxrwx. 1 1001 501 99157 dec 10 03:01 testdata1.log

-rwxrwxrwx. 1 1001 501 244283341 feb 7 06:41 testdata2.tar.gz12

3456

789還可以檢視raid分割槽的資訊:

[root@scvm-cnt8-01 ~]# mdadm --detail /dev/md2

/dev/md2:

version : 0.90

creation time : mon apr 20 02:51:59 2020

raid level : raid1 # raid型別

array size : 209715136 (200.00 gib 214.75 gb) # raid大小

used dev size : 209715136 (200.00 gib 214.75 gb)

raid devices : 2 # 原有2塊硬碟

total devices : 1 # 發現1塊硬碟

preferred minor : 2 # 至少2塊硬碟

persistence : superblock is persistent

update time : tue apr 21 03:03:35 2020

state : clean, degraded # 處於降級的服務狀態

active devices : 1

working devices : 1

failed devices : 0

spare devices : 0

consistency policy : resync

uuid : 2b9e5511:d8210d7b:32043162:e56069a7

events : 0.321

number major minor raiddevice state

- 0 0 0 removed

1 8 18 1 active sync /dev/sdb2

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

常見錯誤

此外,你可能會遇到下面的錯誤:

[root@scvm-cnt8-01 ~]# mdadm --assemble --run /dev/md2 /dev/sdb2

mdadm: /dev/sdb2 is busy - skipping12

這時,你可以這樣檢查一下:

[root@scvm-cnt8-01 ~]# cat /proc/mdstat

personalities : [raid1]

md124 : active (auto-read-only) raid1 sdc3[0]

1948692544 blocks super 1.2 [1/1] [u]

md125 : inactive sdb31

1742225408 blocks

md126 : inactive sdb21

209715136 blocks

md127 : inactive sdb11

524224 blocks

unused devices: 12

3456

78910

1112

1314

15你可能會發現你要掛載的sdb2分割槽已經被使用了。

當然,如果你願意的話,你也可以手動停用它,方法是:

[root@scvm-cnt8-01 ~]# mdadm --stop /dev/md126

[root@scvm-cnt8-01 ~]#

NAS掛載到Linux系統

環境 ubuntu16.04 內網synologynas 1.synologynas管理員登入 假設內網位址為192.168.68.1 開啟nfs,新增客戶端 2.ubuntu系統下建立掛載目錄,修改 etc fstab,掛載nas 首先安裝sudo apt get install nfs comm...

Linux建立並掛載nas

要點 在linux伺服器上建立nas伺服器,並指定可讀寫目錄。在另一台linux上掛載上述nas磁碟。實驗環境 前置工作 檢查伺服器上開啟nfs服務的必要軟體是否存在。rpm qa grep nfs rpm qa grep rpcbind如果含有這兩個軟體 nfs utils 1.3.0 0.33....

Linux掛載硬碟

學習作業系統時我們都了解到檔案系統是作業系統的重要組成部分之一。檔案系統有很多種型別,比windows的fat fat32 linux的ext ext2或ext3 freebsd的ufs等等。在使用linux的過程,也常常linux作業系統使用虛擬檔案系統vfs,通過vfs可以直接訪問其 它已被核心...