机器位于美国. 32G内存+1T硬盘*4(硬RAID10阵列)+xenserver5.6系统 服务器支持kvm远程管理.机房断电,致使xenserver网卡丢失.在恢复网络连接后,其所有虚拟机(VPS)丢失。控制面板使用我的是我破解过的xensystem2.0版本.(维护和操作起来比较方便)
开始:
起初我在网上找了很多方法,都不成,有说是因为xenserver有自我保护模式,有说是pool主从模式的,都试过了,不成功。一般没见过的命令也不敢操作,毕竟不太熟悉。万一数据搞丢了可不好。
1.恢复网卡访问
连接上KVM,需要安装java环境,这个就不介绍了.因为断电的原因,网卡丢失了。这时候我们通过
xe pif-scan
查找一下网卡,如果没有找到可能你就需要联系下机房人员了
找到网卡后,你还需要配置你的母机的IP等信息,测试可以ping通或者是非KVM可以SSH连接上后,就可以通过SSH操作了。
2.网卡已经成功激活并能远程SSH连接,这时候我们可以退出KVM,操作太卡了。
使用XenCenter连接后.发现SR及VPS全部不能正常显示.
先在SSH端检查下数据是否还在.
先列出卷
pvscan
PV /dev/sda3 VG VG_XenStorage-c9aa6b53-8d71-6fc0-8148-2b28cf9bf57b lvm2 [1.81 TB / 1.26 TB free]
Total: 1 [1.81 TB] / in use: 1 [1.81 TB] / in no VG: 0 [0 ]
使用了600G,看来原来的数据还在。
记录下uuid“c9aa6b53-8d71-6fc0-8148-2b28cf9bf57b”
创建出这个UUID的存储
xe sr-introduce uuid=c9aa6b53-8d71-6fc0-8148-2b28cf9bf57b type=lvm name-label=”Local storage” content-type=user
找到SR的数据存储设备或分区的SCSI ID
ls -l /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root 9 Nov 22 14:31 scsi-SAdaptec_bootos_A46A2A2C -> ../../sda
lrwxrwxrwx 1 root root 10 Nov 22 14:31 scsi-SAdaptec_bootos_A46A2A2C-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Nov 22 14:31 scsi-SAdaptec_bootos_A46A2A2C-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Nov 22 14:31 scsi-SAdaptec_bootos_A46A2A2C-part3 -> ../../sda3
列出服务器UUID
xe host-list
uuid ( RO) : dbe8e2d9-817d-429a-be77-235a7e58d234
name-label ( RW): xenserver-mdqhgghe
name-description ( RW): Default install of XenServer
通过设置的scsi ID,host ID,sr uuid检测出pdb uuid
xe pbd-create sr-uuid=c9aa6b53-8d71-6fc0-8148-2b28cf9bf57b device-config:device=/dev/disk/by-id/scsi-SAdaptec_bootos_A46A2A2C-part3 host-uuid=dbe8e2d9-817d-429a-be77-235a7e58d234
得到pbd uuid:
0d65a15e-75a0-dc81-8bb5-79df3e6d96db
把这个存储还原
xe pbd-plug uuid=0d65a15e-75a0-dc81-8bb5-79df3e6d96db
在这儿我们还创建一个ISO的光驱,呆会儿来安装系统使用
mkdir -p /iso_storage
xe sr-create name-label=iso_storage type=iso device-config:location=/iso_storage device-config:legacy_mode=true content-type=iso
这儿我们可以重启一下XAPI
service xapi restart
或者重启一下xen的工具接口
xe-toolstack-restart
3.还原VPS
现在,我们能通过XENcenter查看到存储器了.在stoarge中,能看到你之前的所有VPS的硬盘VHD,如果运气不好你可能看到的是没有任何的识别编号,如下图:
1,自己创建一个VPS,一个个硬盘挂载回去,找回数据。此办法需要的时间很长,如果VPS数量多的话,需要几天的时间。而且如果你是做VPS的,还要和客户联系,找回对应的数据。
2,这个办法需要前提有备份state.db(记录VPS硬盘UUID等文档),通过这个来快速找回硬盘。
3,还有个恢复办法,利用xensystem系统中记录的每台VPS的硬盘UUID。通过这个恢复,时间很短,我试过我有17台VPS,用了15分钟全部恢复完毕!
方法1我就不讲了,不是本文的重点.
方法2是,如果你有备份state.db这个文件,通过这个文档找出每台VPS的硬盘UUID。虽然非常耗时间,但起码也能快速找回。
例如,我现在要找出vps2747的2个硬盘UUID,原来的硬盘名称叫:Disk2474s;Disk2474c。
用文本(任何软件)打开state.db文档,搜索“Disk2474s”,找到“vdi-uuid”,后面有一串数字+字母的“c077b15c-091c-4eb3-b8e3-44d7e0da2e3f”。这个就是我们需要的UUID,用命令:
xe vdi-param-set uuid=c077b15c-091c-4eb3-b8e3-44d7e0da2e3f name-label=Disk2474s
找到“Disk2474s”硬盘,按照上面的步骤,找到“Disk2474c”的硬盘UUID,给这个硬盘重置名称:
xe vdi-param-set uuid=f119187c-6ab2-4017-a3f1-e87f6b8b322e name-label=Disk2474c
这样,我们就能在XenCenter看到有个硬盘的名称已经显示了
重复上面的步骤,完成虚拟硬盘标识的标注工作。
如果上面2种方法你都没有。。。那你就只能手工一个个给硬盘加标识,然后按方法一慢慢的来折腾了。
接下来的工作就是恢复VPS访问了。这儿我们分为2003系统和Linux分别来做。稍后你就知道为什么
2003系统的话,比较简单,通过xencenter创建一个新的VM,选择系统版本,然后删除默认磁盘,直接将我们对应的系统硬盘加载进来即可
这儿给大家截图一个
先删除方框内默认的磁盘,然后点击椭圆形内的添加按钮,添加我们03系统以前的磁盘,注意顺序哟。
然后开机即可!
linux系统的话,会比较麻烦。我开始按照上面03系统的方法操作,遇到了这样的问题。
启动创建的VPS
xe vm-start uuid=79ffe4cb-06ee-211c-4a36-e3d89cf46dc7
却无法开机,提示我
Error code: INVALID_SOURCE Error parameters: cdrom repo /dev/xvda,
谷歌、百度、搜搜、搜狗、bing、360SO之后,发现有老外说应该是在创建linux的时候 选择Other install media. 但是我这样操作后,能开机,但也不能正常启动 提示完centos 的 booting CentOS 就自动关机了.
纠结了很久,网上搜索、咨询朋友、群内问高手都无结果。
然后我尝试了安装一个同样的linux系统,删除磁盘,挂上以前的硬盘,也不能正常启动。
于是呼 我放弃了。。。。
但是这并没有完,我去做xensystem系统的模板去了,其实此时我懒得想这个linux如何恢复了,因为我用了一下午的时间,没搞定。
制作完几个系统模板,我通过xensystem后台安装了一个linux系统,然后我替换掉了它的磁盘,咧咧咧。。。。奇迹出现了。。。 它既然好了。。。 可以启动了
总 结的时候 整理了一下思路,如果我们的linux系统,最初如果就是直接用xencenter或者直接命令创建的话,可能就不会提 示 Error code: INVALID_SOURCE Error parameters: cdrom repo /dev/xvda, 这样的 错误了,因为我们的系统
最初也是用xensystem这个面板创建的,所以解铃还需系铃人呀。
既然知道问题怎么解决,余下的工作就好办了。
我在后台开了一堆linux系统的VPS,然后替换它们的硬盘为我们之前的磁盘,再然后 调整用户的财务参数,IP显示等内容。到此就全部完工了.