使用Linux挂载NAS硬盘的RAID分区

背景
最近在研究各种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 rom
1
2
3
4
5
6
7
8
9
10
11
12
13
14
其次,尝试挂载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’.
1
2
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).
1
2
3
4
5
再次将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.gz
1
2
3
4
5
6
7
8
9
还可以查看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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
常见错误
此外,你可能会遇到下面的错误:

[root@SCVM-CNT8-01 ~]# mdadm --assemble --run /dev/md2 /dev/sdb2
mdadm: /dev/sdb2 is busy - skipping
1
2
这时,你可以这样检查一下:

[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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
你可能会发现你要挂载的sdb2分区已经被使用了。

当然,如果你愿意的话,你也可以手动停用它,方法是:

[root@SCVM-CNT8-01 ~]# mdadm --stop /dev/md126
[root@SCVM-CNT8-01 ~]#

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值