虛拟化之xenserver
安裝XenServer系統的硬碟大小為1T,自身存放10來個虛拟硬碟為50G的虛拟機不成問題。但在實際應用中,由于通過nfs等方式使用異地存儲, 本地硬碟用作存放虛拟機的中繼資料,是以安裝XenServer系統的硬碟,即sda,一般都不會用大容量硬碟,以免浪費。
但是,假如隻有一台伺服器用來搭建XenServer平台,且作為系統使用盤的sda容量比較小的話(比如說是一個146G的SAS硬碟),就需要通過增加硬碟裝置(比如增加一個大小為300G的SAS硬碟,即sdb),以提供足夠的存儲空間給新增的虛拟機。
一般都用共享存儲,不将虛拟機放在系統盤上,本地硬碟隻做為xenserver系統的駐留而已。是以構想是否可以用電子盤。資料盤要麼在本地挂另一塊硬碟,要麼使用異地的共享存儲。
虛拟機自動啟動
###先檢視要啟動的虛拟機uuid,再用第二條指令設定自動啟動。
[root@xenserver-flt ~]# xe vm-list
[root@xenserver-flt ~]# xe vm-param-set uuid=6beb4fca-7b93-d9fb-bcd2-dad6354738e4 other-config:auto_poweron=true
[root@xenserver-ylmunndq ~]# xe host-list
uuid ( RO) : 40c4d5a8-d046-4f4f-940a-4926845f0cbb
name-label ( RW): xenserver-ylmunndq
name-description ( RW): Default install of XenServer
[root@xenserver-ylmunndq ~]# xe sr-list
uuid ( RO) : 5fe4cd86-6de6-72fe-cee5-1161525a5488
name-label ( RW): XenServer Tools
name-description ( RW): XenServer Tools ISOs
host ( RO): xenserver-ylmunndq
type ( RO): iso
content-type ( RO): iso
uuid ( RO) : ef8a4c3b-6f74-8625-fc39-073ce0a61a8a
name-label ( RW): Removable storage
name-description ( RW):
host ( RO): xenserver-ylmunndq
type ( RO): udev
content-type ( RO): disk
uuid ( RO) : 4845bb7f-97ab-ab7c-4025-73763c4e703a
name-label ( RW): Local storage
name-description ( RW):
host ( RO): xenserver-ylmunndq
type ( RO): lvm
content-type ( RO): user
uuid ( RO) : 73641ef2-ff89-6153-a1c6-9c39b8da4465
name-label ( RW): DVD drives
name-description ( RW): Physical DVD drives
host ( RO): xenserver-ylmunndq
type ( RO): udev
content-type ( RO): iso
####pbd與sr是一一對應的,看pbd的sr-uuid行與sr的uuid行對應
[root@xenserver-ylmunndq ~]# xe pbd-list
uuid ( RO) : 49d666b5-1e45-8596-5b0d-7a40661f3d26
host-uuid ( RO): 40c4d5a8-d046-4f4f-940a-4926845f0cbb
sr-uuid ( RO): 4845bb7f-97ab-ab7c-4025-73763c4e703a
device-config (MRO): device: /dev/disk/by-id/scsi-SATA_ST3500413AS_5VMXK89X-part3
currently-attached ( RO): true
uuid ( RO) : 23d6bc37-aea2-a32d-7d75-1886bd8f2ab9
host-uuid ( RO): 40c4d5a8-d046-4f4f-940a-4926845f0cbb
sr-uuid ( RO): 73641ef2-ff89-6153-a1c6-9c39b8da4465
device-config (MRO): location: /dev/xapi/cd
currently-attached ( RO): true
uuid ( RO) : 22990232-c1c5-6067-cdb0-2e8bb3406a1f
host-uuid ( RO): 40c4d5a8-d046-4f4f-940a-4926845f0cbb
sr-uuid ( RO): ef8a4c3b-6f74-8625-fc39-073ce0a61a8a
device-config (MRO): location: /dev/xapi/block
currently-attached ( RO): true
uuid ( RO) : 0ec239f4-b9e7-7305-330f-5f892b527fc6
host-uuid ( RO): 40c4d5a8-d046-4f4f-940a-4926845f0cbb
sr-uuid ( RO): 5fe4cd86-6de6-72fe-cee5-1161525a5488
device-config (MRO): location: /opt/xensource/packages/iso; legacy_mode: true
currently-attached ( RO): true
檢視xenserver背景任務
[root@xenserver-ylmunndq ~]# xe task-list
uuid ( RO) : 6b3673b7-90d5-3723-5d7a-8a8ddc214fa3
name-label ( RO): Connection to VM console
name-description ( RO):
status ( RO): pending
progress ( RO): 0.000
[root@xenserver-ylmunndq ~]# service xapi status
xapi (pid 6220) is running...
[root@xenserver-ylmunndq ~]# cat /proc/partitions
major minor #blocks name
7 0 52378 loop0
8 0 488386584 sda
8 16 488386584 sdb
8 17 4193297 sdb1
8 18 4193297 sdb2
8 19 479996935 sdb3
252 0 4096 dm-0
[root@xenserver-ylmunndq ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 4.0G 1.9G 2.0G 49% /
none 373M 36K 373M 1% /dev/shm
/opt/xensource/packages/iso/XenCenter.iso
52M 52M 0 100% /var/xen/xc-install
如上面兩條指令所示,有三個分區,但隻能看見一個分區
XenServer的預設分區一般由三部分組成:第一個4G分區為XenServer根分區;第二個4G分區為更新操作的備份分區;第三個分區一般為磁盤的剩餘空間,用于Local Storage使用。後兩者都是看不見、不用作于其他存儲的。
那麼,XenServer如何實作存儲擴充呢?在XenServer中的引入存儲倉庫的概念,存儲倉庫(SR - Storage Repositories)是用來存儲ISO或者VDI的。Citrix官方推薦使用共享存儲,這也是XenServer設計的初衷和目标,與
VMWare的産品設計很不相同。目前XenServer支援FC SAN、ISCSI SAN和NFS三種存儲類型,根據虛拟化類型不同,劃分不同的LUN類型來滿足使用。此處涉及到存儲伺服器,對裝置成本是有要求的。
如果應用環境相對簡單,比如說,隻有一台Dell R720伺服器,那又該如何把XenServer玩起來呢?方法當然是有的,就是通過添加一個硬碟,來達到擴充存儲的效果。
存儲庫 (SR)
虛拟磁盤映像 (VDI)
實體塊裝置 (PBD)
虛拟塊裝置 (VBD) xen virtual block device (xvda)就是一塊磁盤
SR 具有對本地連接配接的 IDE、SATA、SCSI 和 SAS驅動器和遠端連接配接的 iSCSI、NFS、SAS 和光纖通道的内置支援,因而非常靈活。
其中,PBD為實體儲存設備的抽象,基本無法改變,SR為XenServer對實體儲存設備的抽象,起到組織管理的作用,SR的類型對虛機VDI的格式以及性能有一定的影響,但是SR的類型受限制于實體存儲的形式,是以,暫停也跳過,VBD與VDI對應,而最終VM拿到的虛拟塊裝置VBD,則為VDI的虛拟,是以,SR中VDI的格式對存儲空間消耗以及性能産生比較重要的影響。
存儲倉庫通過實體塊裝置(PBD)與XenServer相連接配接,PBD包含了存儲倉庫(SR)的配置資訊。當要從XenServer主機上分離或者删除SR之前,很有必要先将PBD斷開。
1.XS建立本地存儲
首先 分區好的的硬碟接到伺服器上
檢視所有硬碟了的id
ls -l /dev/disk/by-id/
記下硬碟的全稱.接下來開始挂載
xe sr-create type=lvm content-type=user device-config:device=/dev/disk/by-id/edd-int13_dev81-part1 name-label="Local storage 2"
這是在本地第一個分區即系統盤建立的sr
mkdir /mnt/iso
xe sr-create type=iso content-type=iso device-config:location=/mnt/iso device-config:legacy_mode=true name-label=vmiso
device-config:device=/dev/disk/by-id/後面跟的是剛才記下的SCSI
name-label="Local storage 2"是你需要建立的名字.可以任意更改
如:
xe sr-create type=lvm content-type=user device-config:device=/dev/disk/by-id/scsi-SATA_VMware_Virtual_01000000000000000001 name-label="Local storage 2"
2.XS删除本地存儲連接配接
指令行sr的添加與删除操作
[root@xenserver-ylmunndq ~]# mkdir /mnt/iso
[root@xenserver-ylmunndq ~]# xe sr-create type=iso content-type=iso device-config:location=/mnt/iso device-config:legacy_mode=true name-label=vmiso
建立之後,sr-detory或者sr-forget都是不行的,必須先pbd-list查詢再pbd-unplug後,隻有當sr為空時才可以destory(否則隻能forget)
[root@xenserver-ylmunndq ~]# xe pbd-list sr-uuid=a6390708-30a6-b3bf-9389-9a9777159462
uuid ( RO) : a357aa89-94ef-a2d8-6e2c-10a1f7b25cac
host-uuid ( RO): 40c4d5a8-d046-4f4f-940a-4926845f0cbb
sr-uuid ( RO): a6390708-30a6-b3bf-9389-9a9777159462
device-config (MRO): location: /mnt/iso; legacy_mode: true
currently-attached ( RO): true
[root@xenserver-ylmunndq ~]# xe sr-destroy uuid=a6390708-30a6-b3bf-9389-9a9777159462
The SR is still connected to a host via a PBD. It cannot be destroyed or forgotten.
sr: a6390708-30a6-b3bf-9389-9a9777159462 (vmiso)
[root@xenserver-ylmunndq ~]# xe pbd-unplug uuid=a357aa89-94ef-a2d8-6e2c-10a1f7b25cac 上一步查詢的PBD的UUID
[root@xenserver-ylmunndq ~]# xe sr-destroy uuid=a6390708-30a6-b3bf-9389-9a9777159462
The SR operation cannot be performed because the SR is not empty.
[root@xenserver-ylmunndq ~]# xe sr-forget uuid=a6390708-30a6-b3bf-9389-9a9777159462
[root@xenserver-ylmunndq lvm]# pvscan
PV /dev/sdc3 VG VG_XenStorage-4845bb7f-97ab-ab7c-4025-73763c4e703a lvm2 [457.75 GB / 457.75 GB free]
PV /dev/sdb VG VG_XenStorage-e4d10b8c-de2d-2e64-c386-3fee17bf7f4f lvm2 [465.75 GB / 263.30 GB free]
PV /dev/sda3 VG VG_XenStorage-85ce0366-7bf3-c074-ca54-d3a9f908e3db lvm2 [457.75 GB / 244.71 GB free]
Total: 3 [1.35 TB] / in use: 3 [1.35 TB] / in no VG: 0 [0 ]
做了下面這一步後,資料丢失。
[root@xenserver-ylmunndq ~]# xe sr-create type=lvm content-type=user device-config:device=/dev/disk/by-id/scsi-SATA_ST500DM002-1BD1_W2AB306K-part3 name-label="baddisk-part3"
[root@xenserver-ylmunndq ~]# pvscan
PV /dev/sdc3 VG VG_XenStorage-4845bb7f-97ab-ab7c-4025-73763c4e703a lvm2 [457.75 GB / 449.72 GB free]
PV /dev/sdb VG VG_XenStorage-e4d10b8c-de2d-2e64-c386-3fee17bf7f4f lvm2 [465.75 GB / 263.30 GB free]
Total: 2 [923.50 GB] / in use: 2 [923.50 GB] / in no VG: 0 [0 ]
幾個名稱
共三個分區,系統盤,備份盤,pv盤。備份盤與pv盤在xenserver指令行下不可見,而pv盤在gui界面下就是預設的sr存儲庫。
系統盤:root-jpntswox
系統盤id:614e1843-2abf-4d9a-95a9-8bb270b550d6
主機名:xenserver-ylmunndq
主機id:40c4d5a8-d046-4f4f-940a-4926845f0cbb
pvid:VG_XenStorage-4845bb7f-97ab-ab7c-4025-73763c4e703a
[root@xenserver-ylmunndq lvm]# ll /dev/disk/by-label/
total 0
lrwxrwxrwx 1 root root 10 Sep 6 17:16 root-aojbkkoh -> ../../sda1
lrwxrwxrwx 1 root root 10 Sep 6 17:16 root-jpntswox -> ../../sdc1
[root@xenserver-ylmunndq lvm]# xe host-list
uuid ( RO) : 40c4d5a8-d046-4f4f-940a-4926845f0cbb
name-label ( RW): xenserver-ylmunndq
name-description ( RW): Default install of XenServer
在XC(xencenter)上删除一個sr過程是
先在某個nfs iso library上右擊
1.先将駐留在這個nfs上的磁盤與檔案在相應的虛拟機中去掉
2.再detach
3.可以重reattch或者forget
forget後就徹底删除了,以後需要重新添加。
故障描述:由于停電導緻xenserver開機後檔案系統損壞,不能啟動,是以考慮恢複方案。
http://zhangyu.blog.51cto.com/197148/1184910/ 對xenserver恢複有幫助
xenserver 6.2無法啟動時
http://blog.chinaunix.net/uid-7445427-id-4314749.html 在此找到解決辦法,但是很可惜,晚了一步,在此之前已經有誤操作,将一個pv用一個sr-create指令做掉了。
思路
1.可以重新安裝(更新)此塊磁盤上的xenserver,不過是在沒有勇氣。采用以下方案
2.新裝一台同樣的Xenserver ,把舊的硬碟作為新伺服器的存儲空間使用。新Xenserver安裝完成,測試啟動沒有問題,關機,添加新硬碟,重新啟動。
[root@xenserver-bf ~]# pvscan
PV /dev/sdb3 VG VG_XenStorage-39947d67-736e-2ab3-8d2a-c17032c576a4 lvm2 [923.50 GB / 93.63 GB free] # 記住 39947d67-736e-2ab3-8d2a-c17032c576a4
PV /dev/sda3 VG VG_XenStorage-29a1f2c8-172b-3f4e-6c11-0810b8152443 lvm2 [457.75 GB / 457.75 GB free]
Total: 2 [1.35 TB] / in use: 2 [1.35 TB] / in no VG: 0 [0 ]
[root@xenserver-bf ~]# ls -l /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root 9 Jun 18 13:52 edd-int13_dev81 -> ../../sdb
lrwxrwxrwx 1 root root 10 Jun 18 13:52 edd-int13_dev81-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Jun 18 13:52 edd-int13_dev81-part2 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jun 18 13:52 edd-int13_dev81-part3 -> ../../sdb3
lrwxrwxrwx 1 root root 9 Jun 18 13:52 scsi-SATA_ST1000DM003-9YN_W1D0NM3Y -> ../../sdb
lrwxrwxrwx 1 root root 10 Jun 18 13:52 scsi-SATA_ST1000DM003-9YN_W1D0NM3Y-part1 -> ../../sdb1 # Xenserver 分區
lrwxrwxrwx 1 root root 10 Jun 18 13:52 scsi-SATA_ST1000DM003-9YN_W1D0NM3Y-part2 -> ../../sdb2 # Xenserver 更新備份分區
lrwxrwxrwx 1 root root 10 Jun 18 13:52 scsi-SATA_ST1000DM003-9YN_W1D0NM3Y-part3 -> ../../sdb3 # 注意這個就是舊的LVM2 分區
lrwxrwxrwx 1 root root 9 Jun 18 13:52 scsi-SATA_ST500DM002-1BD1_S2AS5NMB -> ../../sda
lrwxrwxrwx 1 root root 10 Jun 18 13:52 scsi-SATA_ST500DM002-1BD1_S2AS5NMB-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jun 18 13:52 scsi-SATA_ST500DM002-1BD1_S2AS5NMB-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Jun 18 13:52 scsi-SATA_ST500DM002-1BD1_S2AS5NMB-part3 -> ../../sda3
[root@xenserver-bf ~]# xe host-list
uuid ( RO) : 6f591a02-0c02-4adf-b8ba-1ac158864b14 #記住此号
name-label ( RW): xenserver-bf
name-description ( RW): Default install of XenServer
[root@xenserver-bf ~]# xe sr-introduce uuid=39947d67-736e-2ab3-8d2a-c17032c576a4 type=lvm name-label="mrecover" content-type=user # 引入
39947d67-736e-2ab3-8d2a-c17032c576a4
[root@xenserver-bf ~]# xe pbd-create sr-uuid=39947d67-736e-2ab3-8d2a-c17032c576a4 device-config:device=/dev/disk/by-id/scsi-SATA_ST1000DM003-9YN_W1D0NM3Y-part3 host-uuid=6f591a02-0c02-4adf-b8ba-1ac158864b14
b7e133b7-e9af-39e7-9926-4eb231c164ea
[root@xenserver-bf ~]# xe pbd-plug uuid=b7e133b7-e9af-39e7-9926-4eb231c164ea
這樣就能看到新的mrecover 存儲了,虛拟機的恢複就比較容易了。