背景
最近在研究各種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可以直接訪問其 它已被核心...