How To Change the Default Storage Repository to File-based VHD-on-EXT3¶ ↑
NOTE: Requires fog > 1.8 (currently in development as of this writing)
This tutorial explains how to convert a local Logical Volume Manager (LVM) based storage repository into a file-based (VHD) storage repository.
It’s the fog/xenserver version of the original Citrix KB article:
support.citrix.com/article/ctx116324
To create this tutorial, I’ve used a vanilla XCP 1.6 ISO install in VirtualBox.
Create the connection¶ ↑
require 'fog' conn = Fog::Compute.new({ :provider => 'XenServer', :xenserver_url => '192.168.1.39', :xenserver_username => 'root', :xenserver_password => 'secret' })
Remove the LVM-backed storage repository (SR).¶ ↑
Find the default LVM storage repository:
# # Equivalent to: # xe sr-list type=lvm # lvm_sr = nil conn.storage_repositories.each do |sr| lvm_sr = sr if sr.type == 'lvm' end
Determine the UUID for your default SR’s physical block device:
# # Equivalent to: # xe pbd-list sr-uuid=your SR UUID # if lvm_sr conn.pbds.each do |pbd| # Unplug it if found # Equivalent to: # xe pbd-unplug uuid=your PBD UUID # pbd.unplug if pbd.storage_repository.uuid == lvm_sr.uuid end # Destroy the SR lvm_sr.destroy end
Create a new VHD-backed SR:
# # Equivalent to: # # xe sr-create content-type="local SR" \ # host-uuid=5d189b7a-cd5e-4029-9940-d4daaa34633d \ # type=ext device-config-device=/dev/sda3 shared=false \ # name-label="Local File SR" # sr = conn.storage_repositories.create :name => 'Local File SR', :host => conn.hosts.first, :type => 'ext', :content_type => 'local SR', :device_config => { :device => '/dev/sda3' }, :shared => false
Set your SR as the default SR on the system:
# # Equivalent command: # xe pool-param-set suspend-image-SR='YOUR NEW SR UUID' uuid=bleh # conn.pools.first.default_storage_repository = sr
Set your SR as the default location for suspended VM images:
# # Equivalent command: # xe pool-param-set suspend-image-SR= YOUR NEW SR UUID uuid=bleh # conn.pools.first.suspend_image_sr = sr