In the following procedure I will show how to extend iSCSI attached LUN's on XenServer (v 5.6 SP2 in my case) on the fly ,so no service restart or downtime are needed and the VDI's that reside on the resized LUN are not affected, read on!
First of all on the storage side (NetApp filer in my case)list the available LUN's, the LUN I want to resize is called "my_lun30", with LUN ID of 22, which is currently allocated with 90GB.
For the test I will extend it by another 10GB, making it a 100GB LUN.
For the test I will extend it by another 10GB, making it a 100GB LUN.
filer1> lun show
/vol/vol1/my_lun10 300.0g (322163441664) (r/w, online, mapped)
/vol/vol2/my_lun20 200g (214748364800) (r/w, online, mapped)
/vol/vol2/my_lun30 90.0g (107388862464) (r/w, online, mapped)
filer1> lun resize /vol/vol2/my_lun30 +10g
lun resize: resized to: 100.0g (107388862464)
As you can see, my_lun30 is now 100GB:
filer1> lun show
/vol/vol1/my_lun10 300.0g (322163441664) (r/w, online, mapped)
/vol/vol2/my_lun20 200g (214748364800) (r/w, online, mapped)
/vol/vol2/my_lun30 100.0g (107388862464) (r/w, online, mapped)
/vol/vol1/my_lun10 300.0g (322163441664) (r/w, online, mapped)
/vol/vol2/my_lun20 200g (214748364800) (r/w, online, mapped)
/vol/vol2/my_lun30 90.0g (107388862464) (r/w, online, mapped)
filer1> lun resize /vol/vol2/my_lun30 +10g
lun resize: resized to: 100.0g (107388862464)
As you can see, my_lun30 is now 100GB:
filer1> lun show
/vol/vol1/my_lun10 300.0g (322163441664) (r/w, online, mapped)
/vol/vol2/my_lun20 200g (214748364800) (r/w, online, mapped)
/vol/vol2/my_lun30 100.0g (107388862464) (r/w, online, mapped)
We are done with the storage side, let's head to the XenServer side.
In case you work in pool mode, login to the pool master as root:
I suggest installing "lsscsi" which provides a nice way of viewing SCSI attached disks/LUNs:
[root@xen3]#yum install lsscsi -y
[root@xen3]# lsscsi
[0:0:0:0] cd/dvd Optiarc DVD RW AD-7561S AH52 /dev/scd0
[2:0:0:0] disk NETAPP LUN 7340 /dev/sda
[2:0:0:22] disk NETAPP LUN 7340 /dev/sdb
[2:0:0:33] disk NETAPP LUN 7340 /dev/sdc
[3:0:0:1] disk NETAPP LUN 7340 /dev/sdd
[3:0:0:3] disk NETAPP LUN 7340 /dev/sde
[root@xen3]# lsscsi
[0:0:0:0] cd/dvd Optiarc DVD RW AD-7561S AH52 /dev/scd0
[2:0:0:0] disk NETAPP LUN 7340 /dev/sda
[2:0:0:22] disk NETAPP LUN 7340 /dev/sdb
[2:0:0:33] disk NETAPP LUN 7340 /dev/sdc
[3:0:0:1] disk NETAPP LUN 7340 /dev/sdd
[3:0:0:3] disk NETAPP LUN 7340 /dev/sde
If YUM traffic to a repository is blocked - It's also possible to see the SCSI id's under /proc via:
# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: Optiarc Model: DVD RW AD-7561S Rev: AH52
Type: CD-ROM ANSI SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: NETAPP Model: LUN Rev: 7340
Type: Direct-Access ANSI SCSI revision: 04
Host: scsi2 Channel: 00 Id: 00 Lun: 22
Vendor: NETAPP Model: LUN Rev: 7340
Type: Direct-Access ANSI SCSI revision: 04
Host: scsi2 Channel: 00 Id: 00 Lun: 33
Vendor: NETAPP Model: LUN Rev: 7340
Type: Direct-Access ANSI SCSI revision: 04
Host: scsi3 Channel: 00 Id: 00 Lun: 01
Vendor: NETAPP Model: LUN Rev: 7340
Type: Direct-Access ANSI SCSI revision: 04
Host: scsi3 Channel: 00 Id: 00 Lun: 03
Vendor: NETAPP Model: LUN Rev: 7340
Type: Direct-Access ANSI SCSI revision: 04
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: Optiarc Model: DVD RW AD-7561S Rev: AH52
Type: CD-ROM ANSI SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: NETAPP Model: LUN Rev: 7340
Type: Direct-Access ANSI SCSI revision: 04
Host: scsi2 Channel: 00 Id: 00 Lun: 22
Vendor: NETAPP Model: LUN Rev: 7340
Type: Direct-Access ANSI SCSI revision: 04
Host: scsi2 Channel: 00 Id: 00 Lun: 33
Vendor: NETAPP Model: LUN Rev: 7340
Type: Direct-Access ANSI SCSI revision: 04
Host: scsi3 Channel: 00 Id: 00 Lun: 01
Vendor: NETAPP Model: LUN Rev: 7340
Type: Direct-Access ANSI SCSI revision: 04
Host: scsi3 Channel: 00 Id: 00 Lun: 03
Vendor: NETAPP Model: LUN Rev: 7340
Type: Direct-Access ANSI SCSI revision: 04
From the output we can see the SCSI ID of the LUN + it's corresponding device on the system, and check the device physical size, as you can see it is not updated yet:
[root@xen3 backup_scripts]# fdisk -l /dev/sdb
Disk /dev/sdb: 96.6 GB, 96647249920 bytes
255 heads, 63 sectors/track, 11750 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
Since XenServer uses LVM, we can see the physical volume info of the disk, as you can see the size is still 90GB.
[root@xen3]# pvdisplay /dev/sdb
--- Physical volume ---
PV Name /dev/sdb
VG Name VG_XenStorage-e71389d1-4dc3-2518-aa30-9f5f0c70ba12
PV Size 90.01 GB / not usable 6.12 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 23039
Free PE 16624
Allocated PE 6415
PV UUID oSZlnA-VxlA-3qbp-07nI-Ql0b-3cG2-9wo2lC
Now, we will tell XenServer to rescan the SCSI bus, we will provide the SCSI id which we previously got from the "lsscsi" command (2:0:0:22):
[root@xen3]# echo 1 > /sys/class/scsi_disk/2:0:0:22/device/rescan
You can notice the immediate change of /dev/sdb:
[root@xen3]# fdisk -l /dev/sdb
Disk /dev/sdb: 107.3 GB, 107388862464 bytes
255 heads, 63 sectors/track, 13055 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
Now, resize the physical volume with:
[root@xen3]# pvresize /dev/sdb
Physical volume "/dev/sdb" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
Check again the physical volume size, notice the change:
[root@xen3]# pvdisplay /dev/sdb
--- Physical volume ---
PV Name /dev/sdb
VG Name VG_XenStorage-e71389d1-4dc3-2518-aa30-9f5f0c70ba12
PV Size 100.01 GB / not usable 6.12 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 25600
Free PE 19185
Allocated PE 6415
PV UUID oSZlnA-VxlA-3qbp-07nI-Ql0b-3cG2-9wo2lC
Let's get the SR uuid, I know the LUN ID is 22, so:
[root@xen3]# xe sr-list|grep lun22 -B1
uuid ( RO) : e71389d1-4dc3-2518-aa30-9f5f0c70ba12
name-label ( RW): iSCSI_filer1_lun22
uuid ( RO) : e71389d1-4dc3-2518-aa30-9f5f0c70ba12
name-label ( RW): iSCSI_filer1_lun22
Notice that the SR size has yet to be updated:
physical-size ( RO): 96632569856
Now, finally update the relevant SR:
[root@xen3]# xe sr-update uuid=e71389d1-4dc3-2518-aa30-9f5f0c70ba12
And at last, the SR is updated with the correct new LUN size :
[root@xen3]# xe sr-param-list uuid=e71389d1-4dc3-2518-aa30-9f5f0c70ba12|grep physical-sizephysical-size ( RO): 107374182400
You are done!
2 comments:
Nice but you missing some point.
You still need resize vdi and that i can't do in online.
so how you can do xe vdi-resize online=true uuid=xxxx
That can't do it when VM is online.
Or am i wrong?
In 5.6 without SP2 that can be done.
I was able to resize while staying online. I have a pool of three XenServers that all connect to the same LUN via multipath iSCSI. I documented my experience here. Hopefully it can help you too:
http://labs.wrprojects.com/expanding-a-multipath-iscsi-lun-in-a-xenserver-6-pool-without-downtime/
Post a Comment