一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

XenServer的断电导致系统崩溃而恢复数据的示例

时间:2016-08-08 编辑:简简单单 来源:一聚教程网

由于 办公楼突然断电导致公司内部机房XenServer主机挂了一台,系统无法启动,宕机之前系统配置是
CPU:E5 2630 v3
内存:128GB
存储:3T 西数紫盘5块
阵列卡:LSI 9361-8i
磁盘采取了5块做raid5,当宕机无法启动之后,我采取了增加一块LSI9361-8i的卡和6块3T磁盘(硬件备件的重要性),然后重新做了一组raid5,
在新的raid上重新安装了一个Xenserver系统,进入系统后我发现之前系统上的raid阵列没了分区表没了pv vg lv,突然之间我直接愣比了。。。

但是事情已经出了还是要想办法恢复的,首先要还原分区表,于是开始慢慢的爬坑和尝试了,这里不说走的弯路,直接说解决过程
首先查看当前系统的分区表详情。

[root@xenserver-DS-TestServer1 ~]# sgdisk -p /dev/sdb
Disk /dev/sdb: 29297213440 sectors, 13.6 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 96873AC9-0736-4EDD-B12C-9C64FA674119
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 29297213406
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
 
Number  Start (sector)    End (sector)  Size       Code  Name
   1        46139392        83888127   18.0 GiB    0700 
   2         8390656        46139391   18.0 GiB    0700 
   3        87033856     29297213406   13.6 TiB    8E00 
   4        83888128        84936703   512.0 MiB   EF02 
   5            2048         8390655   4.0 GiB     0700 
   6        84936704        87033855   1024.0 MiB  8200 
[root@xenserver-DS-TestServer1 ~]#

然后发现,XenServer非常好的动作就是数据存储分区虽然ID不是最后一个但是分区的块是最后一个,那么喜讯来了,我们完全可以借助现有的分区信息恢复之前的分表。


[root@xenserver-DS-TestServer1 ~]# sgdisk -p --new=5:2048:8390655 -t 5:0700 /dev/sda
[root@xenserver-DS-TestServer1 ~]# sgdisk -p --new=2:8390656:46139391 -t 2:0700 /dev/sda
[root@xenserver-DS-TestServer1 ~]# sgdisk -p --new=1:46139392:83888127 -t 1:0700 /dev/sda
[root@xenserver-DS-TestServer1 ~]# sgdisk -p --new=4:83888128:84936703 -t 4:EF02 /dev/sda
[root@xenserver-DS-TestServer1 ~]# sgdisk -p --new=6:84936704:87033855 -t 6:8200 /dev/sda
[root@xenserver-DS-TestServer1 ~]# sgdisk -p --new=3:87033856 -t 3:8E00 /dev/sda
命令解释 由于是大于2T的磁盘做分区所以需要用他来做GPT分区
-p 是打印信息用的
--new=X:起始位置:结束位置 (没有结束位置就是到最后)
-t X:分区类型代码
来看看恢复的分区表是不是正确的


[root@xenserver-DS-TestServer1 ~]# sgdisk -p /dev/sda
Disk /dev/sda: 23437770752 sectors, 10.9 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 589962FD-858D-4789-A026-E08AD53863FF
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 23437770718
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
 
Number  Start (sector)    End (sector)  Size       Code  Name
   1        46139392        83888127   18.0 GiB    0700 
   2         8390656        46139391   18.0 GiB    0700 
   3        87033856     23437770718   10.9 TiB    8E00 
   4        83888128        84936703   512.0 MiB   EF02 
   5            2048         8390655   4.0 GiB     0700 
   6        84936704        87033855   1024.0 MiB  8200 
[root@xenserver-DS-TestServer1 ~]# mkdir /1
[root@xenserver-DS-TestServer1 ~]# mount /dev/sda1 /1
[root@xenserver-DS-TestServer1 ~]# ls /1
1  bin  boot  cli-rt  dev  etc  EULA  home  iso_storage  lib  lib64  lost+found  media  mnt  opt  proc  Read_Me_First.html  root  run  sbin  srv  sys  tmp  usr  var

分区表回来了,现在就是要做恢复pv了,由于XenServer在/etc/lvm/backup/下有存放lvm的备份信息,所以直接来操作


[root@xenserver-DS-TestServer1 ~]# ls /etc/lvm/backup/
VG_XenStorage-275f0172-dec8-aa20-81a5-5e50cd637f59  XSLocalEXT-0d4b3188-1afd-ecf7-44a4-2d594d966b35
[root@xenserver-DS-TestServer1 ~]# grep -A1 pv0 /etc/lvm/backup/VG_XenStorage-275f0172-dec8-aa20-81a5-5e50cd637f59 |head -3 #取之前PV的ID
                pv0 {
                        id = "XBPMJ4-QTR0-I76k-32jy-UiKR-EaOh-gDu954"
--
[root@xenserver-DS-TestServer1 ~]# pvcreate /dev/sda3 \
-u XBPMJ4-QTR0-I76k-32jy-UiKR-EaOh-gDu954 --restorefile \
/etc/lvm/backup/VG_XenStorage-275f0172-dec8-aa20-81a5-5e50cd637f59
[root@xenserver-DS-TestServer1 ~]# vgcfgrestore
[root@xenserver-DS-TestServer1 ~]# pvs
  PV         VG              %2

热门栏目