深度解析 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://www.gebi1.com/thread-69336-1-1.html
PS 如果有什么问题 可以发消息给我 我会尽力解答。并且逐步完善数据恢复的步骤。
其实 硬盘的选择也是比较重要的一方面,大家如果能选择带有TLER(限时错误校正) 功能的硬盘 那就会稳妥许多。 另外再加上设置文件的备份,基本上没什么大问题。当然最保险的还是再多一重备份 (网盘 之类的)。
本帖最后由 ko74110 于 2013-5-30 15:44 编辑
沙发占位
帮顶
请教个问题,一块硬盘A装了dsm,之后添加了一些套件,设置了些参数。
然后我添加了硬盘B,添加成功后。B盘里的系统部分是不是和A盘里做过更改的系统部分一样的了
也就是说添加B硬盘后,撤掉A硬盘,是不是完全不影响更改过的套件之类的使用,和之前没添加B硬盘一样 顶,楼主分析的好,继续。。 ko74110 发表于 2013-5-30 15:39 static/image/common/back.gif
沙发占位
帮顶
不是的。套件安装的时候会让你选择安装在哪个存储空间,其它的存储空间上是没有的。 夜雨孤舟 发表于 2013-5-30 16:52 static/image/common/back.gif
不是的。套件安装的时候会让你选择安装在哪个存储空间,其它的存储空间上是没有的。 ...
那我后期想加硬盘怎么弄呢 ko74110 发表于 2013-5-30 17:42 static/image/common/back.gif
那我后期想加硬盘怎么弄呢
我想只能把套件重新装一遍了。当然,我没费心思在这上面,所以如果你找到了其它方法,也请转告我。 谢谢分享。 前排,作者辛苦。好人一生平安 非常专业。对于我想使用黑群辉帮助很大。期待作者快快完成嘿嘿 写得很好。可惜我的4.2安装不上。 LZ的研究, 能否让我们尽情折腾黑群晖, 而保留数据呢?
我现在的问题就是老想在各个版本间折腾, 但是黑群晖里已经有了RAID5和大把数据, 重装黑群晖的话, 原来系统里用的硬盘又要初始化, 数据全丢, 这个伤不起啊! jimmyjin 发表于 2013-5-31 16:08 static/image/common/back.gif
LZ的研究, 能否让我们尽情折腾黑群晖, 而保留数据呢?
我现在的问题就是老想在各个版本间折腾, 但是黑群 ...
要是这样的话,那不坑爹吗。。。{:3_48:} 看看先这个不错的
顶,楼主分析的好,继续。。 顶层国防部放松 好复杂啊。 感谢分享 666666666666666 正准备给黑群晖扩容呢。 楼主分析的好,继续