wizardtt 发表于 2013-8-15 10:29:33

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

本帖最后由 wizardtt 于 2013-8-15 12:46 编辑

续上贴http://www.nas1.cn/thread-64478-1-1.html。本贴主要讲述如何备份以及恢复DSM数据管理的配置信息 以及在异常情况(非物理损坏)下恢复数据,以及如何应对常见错误 “ 文件空间损毁”。 这里需要说明一点,本文只阐述DSM 硬盘文件系统配置信息的备份和恢复,这并不替代数据的备份,数据的备份还是必要的工作。
当然如果 DSM完全无法开机 就得将硬盘取出接入其他PC 用原厂提供的办法读取数据。
--〉 http://www.synology.com/support/faq_show.php?lang=enu&q_id=579
不过看完这个帖子你也就会明白 原厂提供这个办法的原理了。

下面进入正题:
I配置信息备份。

首先我们需要做的是备份硬盘分区信息 。在DSM系统中第一块硬盘的名称是 /dev/sda, 第二块 /dev/sdb 第三块 /dev/sdc 以此类推
那么查看分区信息 命令如下 (需要 用命令行登陆 DSM )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
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这个分区表很重要 就像一张地图 指示了数据空间在硬盘的方位和大小。
那么如何备份呢 ? 首先我们用以下命令 得到所有分区的信息DiskStation> sfdisk -l > /var/log/sfdisk_partion_info.`date +%m%d%Y`

DiskStation> parted -l > /var/log/parted_partion_info.`date +%m%d%Y`生成的这两个文件就包含了系统内所有的分区信息。
另外还可以用底层的dd命令备份硬盘的头部信息 其中也包括了分区表的信息DiskStation> dd if=/dev/sda of=/var/log/sda_disk_head_info.`date +%m%d%Y` count=1 bs=512   所生成的文件可以拷贝在另外的地方,有了这些信息 我们就可以恢复损坏的硬盘分区信息。具体恢复的步骤 下面会详细谈到。
有了分区信息还是不够的,第二步我们要做的事情是备份 软raid信息 如下DiskStation> cat /proc/mdstat
Personalities :
md2 : active raid5 sda5 sdd5 sdc5 sdb5
      10961088 blocks super 1.2 level 5, 64k chunk, algorithm 2
      
md1 : active raid1 sda2 sdb2 sdc2 sdd2 sde2
      2097088 blocks
      
md0 : active raid1 sda1 sdb1 sdc1 sdd1 sde1
      2490176 blocks
      
unused devices: <none>
DiskStation> cat /proc/mdstat > /var/log/mdstat_info.`date + %m%d%Y`这里可以看到这台DSM上软raid的详细信息,
第一个逻辑raid卷组 md0 raid级别是1 包含了5个分区 sda1,sdb1,sdc1,sdd1,sde1.
这里可以把更详细的信息做下备份DiskStation> mdadm -D /dev/md > /etc/mdadm.conf官方给的这个命令 mdadm -Asf 也只是重新生成软raid设备,但这些前提是硬盘的分区表是好的 并且 保存raid配置信息的 superblock 块也是完好的 否则运行这个命令是一定会报错的。 但如果我们事先保存了这些信息,即使报错的话还是会重新build raid 卷组。

raid信息备份完了,下面我们还需要的是备份逻辑卷(LVM)的配置信息 这个很简单DiskStation> vgcfgbackup
Volume group "vg1000" successfully backed up.生成的文件保存在 /etc/lvm/backup 也建议同前面的备份文件一起拷贝出来 单独保存。


有了这些信息 我们就有信心恢复绝大部分的文件空间方面的报错了。


未完 待续...




sdys5201314 发表于 2013-8-15 10:49:51

恩。又学习了 一招。谢谢分享。

228009768 发表于 2013-8-15 10:54:08


非常感谢楼主!

super718 发表于 2013-8-15 10:57:52

谢谢奉献!!!

alfred 发表于 2013-8-15 11:02:39

感谢分享,看来玩NAS linux基础很重要!

hstc 发表于 2013-8-15 11:33:46

学习之中。。。

amoboy 发表于 2013-8-15 12:21:54

lvm备份,我觉得dsm的可靠性建立在对linux上.
不知道是否可以单纯备份系统盘.

wizardtt 发表于 2013-8-15 12:53:26

本帖最后由 wizardtt 于 2013-8-15 13:05 编辑

amoboy 发表于 2013-8-15 12:21
lvm备份,我觉得dsm的可靠性建立在对linux上.
不知道是否可以单纯备份系统盘.
DSM的系统是分布在所有的硬盘上的,系统是运行在/dev/md0md0 是所有硬盘的第一个分区做了raid1所生成的逻辑设备。
硬件上 DS系列都内置了一块 128MB的flash disk 做启动盘。DSM的启动文件都在这flash disk 上面,系统运行文件是在 用户自己安装的硬盘上面 (md0)。这也就是为什么黑裙需要一个usb drive来引导   

zym789 发表于 2013-8-15 12:59:50

wizardtt 发表于 2013-8-15 12:53
DSM的系统是分布在所有的硬盘上的,系统是安装在/dev/md0上md0 是所有硬盘的第一个分区做了raid1生成的 ...
学习了.可惜linxu小白一个,看的头大

半点心 发表于 2013-8-15 13:19:30

其实我只想自动备份远程PC的数据而已

lonelytiger 发表于 2013-8-15 14:12:12

期待更新。。

qqchan1028 发表于 2013-8-15 14:15:33

感谢楼主!

WeDone 发表于 2013-8-15 14:37:28

这样的技术贴真是给广大黑白用户一个定心丸

leon_kong 发表于 2013-8-15 14:39:23

继续学习

dukewang 发表于 2013-8-15 16:07:43

这个比较复杂了,一般人可搞不定

lx3954 发表于 2013-8-15 18:05:23

很好的教程!

xman2010 发表于 2013-8-15 18:25:57

看起来很复杂的样子。

kernel 发表于 2013-8-15 21:49:33

看起来很复杂的样子。

www5500 发表于 2013-8-15 22:09:07

期待继续{:8_212:}

soomal 发表于 2013-8-15 22:24:34

学习一下
页: [1] 2 3
查看完整版本: 深度解析 DSM 存储管理 及 备份建议 II