wizardtt 发表于 2013-5-30 15:19:20

深度解析 DSM 存储管理 及 备份建议

本帖最后由 wizardtt 于 2014-2-16 21:40 编辑

使用NAS最大的担心就是存储在NAS上数据丢失,无法恢复.Synology 的DSM系统作为目前比较流行的NAS 操作系统也诸如此类的问题,用户的数据因为不当操作,突然掉电 硬盘损坏而无法读取. 其实在大多数的情况下,数据还是可以完整恢复的。 当然保持一份可用的备份才是王道。下面就详细解析DSM 系统的存储管理以及备份恢复建议。

1 存储管理基础:DSM 初始化硬盘
不论是初始安装 还是加入新的硬盘,DSM总是要对新识别的硬盘做初始化. 其初始化实质就是对硬盘划分了4个分区。以后安装DSM或划分数据空间都是基于这些分区的。DiskStation> fdisk -l /dev/sda   

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      BlocksId System
/dev/sda1               1         311   2490240fd Linux raid autodetect
Partition 1 does not end on cylinder boundary
/dev/sda2             311         572   2097152fd Linux raid autodetect
Partition 2 does not end on cylinder boundary
/dev/sda3             588      1044   3662816   f Win95 Ext'd (LBA)
/dev/sda5             589      1044   3654768fd Linux raid autodetect这个命令看的更清楚。DiskStation> parted /dev/sda
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p                                                               
p
Model: VBOX HARDDISK (scsi)
Disk /dev/sda: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

NumberStart   End   Size    Type      File system   Flags
1      131kB   2550MB2550MBprimary   ext4            raid
2      2550MB4698MB2147MBprimary   linux-swap(v1)raid
3      4832MB8583MB3751MBextended                  lba
5      4840MB8583MB3742MBlogical                   raid从DSM 命令行输出我们可以看到 sda (通常是第一块硬盘)被划分了 四个分区,其中 第一个和第二个分区的大小是固定的(基于硬件型号一致的前提) 。硬盘剩下的空间都被划分给了 sad3 和 sda5。sda3 是扩展分区,sda5 是用户数据区。

第一个分区是 DSM 安装分区,DSM操作系统 以及后来安装的组件 应用都在这个分区上。 第二个分区是 swap 换页空间。 这两个分区大小是固定的也没必要更改。

2 Software Raid (软raid) DSM 数据保护核心。

当DSM安装好以后 我们登陆DSM命令行界面的时候 我们发现DSM 的根文件系统是在/dev/md0 上面的DiskStation> df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/md0                  2.3G    370.4M      1.9G16% /
/tmp                  500.3M    396.0K    500.0M   0% /tmp其实 md0 是Linux software raid 所生成的逻辑设备。在DSM系统内 md0 是建立所有硬盘的第一个分区之上,raid 级别是 raid1。 换句话说 DSM 操作系统是安装在所有硬盘上的 这也保证了操作系统的冗余和安全。
以下例子可以看到 在4块硬盘的情况下 md0 分布在 sda1,sdb1,sdc1.sdd1DiskStation> raidtool status 0
/dev/md0 is running, status: DEGRADE, rebuilding: None
Device level: RAID 1
Device size: 2431 MB (2549940224 bytes)
Disk:
         
         
         
         那么md1 是什么呢?swap 换页空间. 对了,swap 空间是 md1 建立在所有硬盘的的二个分区。也是采用raid1 保证冗余和安全。DiskStation> raidtool status 1
/dev/md1 is running, status: DEGRADE, rebuilding: None
Device level: RAID 1
Device size: 2047 MB (2147418112 bytes)
Disk:
         
         
         
         同理 md2 就是真正用来存放数据的空间了。建立在所有硬盘的第四个分区上。DiskStation> raidtool status 2
/dev/md2 is running, status: NORMAL, rebuilding: None
Device level: RAID 5
Device size: 7136 MB (7482769408 bytes)
Disk:
         
         
         下面将解析下 DSM 的 SHR 以及相应的 raid 信息的 备份以及恢复。

下面我们来解析SHR, 根据群晖的说法 SHR能更好的利用硬盘空间 尤其是在不同大小的硬盘上提供数据保护。那么我们看看命令行下 SHR 卷到底是什么?DiskStation> df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/md0                  2.3G    370.4M      1.9G16% /
/tmp                  500.3M    344.0K    500.0M   0% /tmp
/dev/vg1000/lv         10.3G    204.6M   10.0G   2% /volume1这里我们创建了一个名为 Volume1 的 SHR 卷。 在这里出现在命令行界面的是名为 Volume1 的文件系统,其中的vg lv 字眼指示了 这其实是LVM 逻辑卷。 是的,所谓的SHR 就是Linux LVM(Logical Volume Management)逻辑卷管理的马甲。这也就解释了为什么SHR能自由定义/变更文件系统大小,以及能利用不同大小的硬盘空间的优势。这些都是LVM的特性。

这里 LVM的基本概念 PE LV PV VG 就不多解释了,有兴趣可以自己baidu下。

我们再深入看一下 SHR的 LV PV VG 是什么DiskStation> pvs
PV         VG   FmtAttr PSizePFree
/dev/md2   vg1000 lvm2 a-   10.45G    0
DiskStation> vgs
VG   #PV #LV #SN Attr   VSizeVFree
vg1000   1   1   0 wz--n- 10.45G    0
DiskStation> lvs
LV   VG   Attr   LSizeOrigin Snap%Move Log Copy%Convert
lv   vg1000 -wi-ao 10.45G                                    在这个实验环境中 可以看到 SHR卷十建立在 名为 lv的 logical volume (LV) 名为vg1000 的Volume Group(VG) 之上的。这里LV占用了VG的全部空间,如果VG 还有可用空间的话 LV可以在线扩容。也可以在线扩容VG的空间。 这些都是LVM带来的灵活性 自然也作为SHR的特点来宣传了。

在这里我们注意到 PV 是 /dev/md2 就是我们前面提到的 软raid的逻辑设备。

简而言之 DSM 初始化硬盘 其中的sd*5是用户数据区。DSM基于所有硬盘的 sd*5 做软raid 。之后所生成的 逻辑设备上(md*)建立LVM卷组。创建文件系统。DiskStation> pvdisplay /dev/md2
--- Physical volume ---
PV Name               /dev/md2
VG Name               vg1000
PV Size               10.45 GB / not usable 4.19 MB
Allocatable         yes (but full)
PE Size (KByte)       4096
Total PE            2675
Free PE               0
Allocated PE          2675
PV UUID               6yhBTB-VaZC-JZ3q-rjdP-479v-IxR3-XpU7Je
   
DiskStation> lvdisplay /dev/vg1000/lv
--- Logical volume ---
LV Name                /dev/vg1000/lv
VG Name                vg1000
LV UUID                O9I1oQ-56S5-etWE-Z2J3-SHDb-i1D4-T0BlXH
LV Write Access      read/write
LV Status            available
# open               1
LV Size                10.45 GB
Current LE             2675
Segments               1
Allocation             inherit
Read ahead sectors   auto
- currently set to   4096
Block device         253:0
   
DiskStation> vgdisplay vg1000
--- Volume group ---
VG Name               vg1000
System ID            
Format                lvm2
Metadata Areas      1
Metadata Sequence No2
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                1
Open LV               1
Max PV                0
Cur PV                1
Act PV                1
VG Size               10.45 GB
PE Size               4.00 MB
Total PE            2675
Alloc PE / Size       2675 / 10.45 GB
FreePE / Size       0 / 0   
VG UUID               07HKKF-v7ns-tPYg-rFrP-W1MM-GT4N-Utv2Bo
   
DiskStation> **** Hidden Message *****

待续。。

续篇 见 http://nas1.cn/thread-69336-1-1.html

PS 如果有什么问题 可以发消息给我 我会尽力解答。并且逐步完善数据恢复的步骤。

其实 硬盘的选择也是比较重要的一方面,大家如果能选择带有TLER(限时错误校正) 功能的硬盘 那就会稳妥许多。 另外再加上设置文件的备份,基本上没什么大问题。当然最保险的还是再多一重备份 (网盘 之类的)。

ko74110 发表于 2013-5-30 15:39:27

本帖最后由 ko74110 于 2013-5-30 15:44 编辑

沙发占位
帮顶

请教个问题,一块硬盘A装了dsm,之后添加了一些套件,设置了些参数。
然后我添加了硬盘B,添加成功后。B盘里的系统部分是不是和A盘里做过更改的系统部分一样的了

也就是说添加B硬盘后,撤掉A硬盘,是不是完全不影响更改过的套件之类的使用,和之前没添加B硬盘一样

超导体 发表于 2013-5-30 16:51:53

顶,楼主分析的好,继续。。

夜雨孤舟 发表于 2013-5-30 16:52:07

ko74110 发表于 2013-5-30 15:39 static/image/common/back.gif
沙发占位
帮顶



不是的。套件安装的时候会让你选择安装在哪个存储空间,其它的存储空间上是没有的。

ko74110 发表于 2013-5-30 17:42:57

夜雨孤舟 发表于 2013-5-30 16:52 static/image/common/back.gif
不是的。套件安装的时候会让你选择安装在哪个存储空间,其它的存储空间上是没有的。 ...

那我后期想加硬盘怎么弄呢

夜雨孤舟 发表于 2013-5-30 17:55:53

ko74110 发表于 2013-5-30 17:42 static/image/common/back.gif
那我后期想加硬盘怎么弄呢

我想只能把套件重新装一遍了。当然,我没费心思在这上面,所以如果你找到了其它方法,也请转告我。

sunmode2200 发表于 2013-5-30 21:07:13

谢谢分享。

sqxiaofei 发表于 2013-5-30 21:28:42

前排,作者辛苦。好人一生平安

fubin99 发表于 2013-5-30 22:14:45

非常专业。对于我想使用黑群辉帮助很大。期待作者快快完成嘿嘿

luckybirdpan 发表于 2013-5-31 14:16:09

写得很好。可惜我的4.2安装不上。

jimmyjin 发表于 2013-5-31 16:08:24

LZ的研究, 能否让我们尽情折腾黑群晖, 而保留数据呢?
我现在的问题就是老想在各个版本间折腾, 但是黑群晖里已经有了RAID5和大把数据, 重装黑群晖的话, 原来系统里用的硬盘又要初始化, 数据全丢, 这个伤不起啊!

stevenjtx 发表于 2013-5-31 23:31:56

jimmyjin 发表于 2013-5-31 16:08 static/image/common/back.gif
LZ的研究, 能否让我们尽情折腾黑群晖, 而保留数据呢?
我现在的问题就是老想在各个版本间折腾, 但是黑群 ...

要是这样的话,那不坑爹吗。。。{:3_48:}

amoboy 发表于 2013-6-4 09:41:31

看看先这个不错的

domwong 发表于 2013-6-4 10:15:15


顶,楼主分析的好,继续。。

kevinok 发表于 2013-6-4 11:05:47

顶层国防部放松

elover345 发表于 2013-6-4 11:06:49

好复杂啊。

simon.hua.xw 发表于 2013-6-4 11:32:56

感谢分享

1190839 发表于 2013-6-4 11:40:28

666666666666666

iamark 发表于 2013-6-4 14:24:38

正准备给黑群晖扩容呢。

odie82544 发表于 2013-6-4 15:06:14

楼主分析的好,继续
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 深度解析 DSM 存储管理 及 备份建议