工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表全部文章

xenserver的SR,VDI,VBD之间的关系

存储库 (SR)

虚拟磁盘映像 (VDI)

物理块设备 (PBD)

虚拟块设备 (VBD)

 

下面就以图形来说明这些术语之间的关系。

1、SR

定义了一个名为存储库 (SR) 的容器来描述存储虚拟磁盘映像 (VDI) 的特定存储目标。SR 具有对本地连接的 IDE、SATA、SCSI 和 SAS驱动器和远程连接的 iSCSI、NFS、SAS 和光纤通道的内置支持,因而非常灵活。

利用xe命令看到如下信息,部分显示内容被省略

[root@xs-10 ~]# xe sr-list

[root@xs-10 ~]# xe sr-list name-label=xenserver 
uuid ( RO)                : 0554628e-448d-fbdf-4544-04cc4f390529 
          name-label ( RW): xenserver 
    name-description ( RW): iSCSI SR [172.20.10.107 (iqn.2007-10.uit.com:techtest.xenserver)] 
                host ( RO): xs-10.8 
                type ( RO): lvmoiscsi 
        content-type ( RO):

结合图形,不难理解,所谓的SR就是一个存储仓库,里面存储了很多的ISO文件,你可以利用这些ISO文件来存储东西,如vmware vsphere、ubuntu这两个SR。又或者当做存储虚拟机文件的仓库,例如xenserver这个SR。下面接着看SR下一层的对象,叫做VDI

2、VDI

虚拟磁盘映像是显示给 VM 的存储抽象,VDI 是 XenServer 中的虚拟化存储的基本单元。

下面我们看一下Ubuntu这个SR存储库中有哪些VDI,即VDI是包含在SR中的。

[root@xs-10 ~]# xe vdi-list sr-uuid=4188b1ee-76bc-10ed-dc15-6c7a236ce9aa

uuid ( RO)                : 5b5bd9b4-b061-4e55-ab8f-a6e685358357

          name-label ( RW): ubuntu-11.04-desktop-i386.iso

    name-description ( RW):

             sr-uuid ( RO): 4188b1ee-76bc-10ed-dc15-6c7a236ce9aa

        virtual-size ( RO): 718583808

            sharable ( RO): false

           read-only ( RO): true

可以看到VDI。由截图不难看出,所谓的VDI就是里面的ISO文件或虚拟机的硬盘文件。下面我们继续vbd

 

3、VBD

虚拟块设备是连接器对象(与上述的 PBD 类似),可用于在 VDI 和 VM 之间进行映射。VBD 还可用于微调给定 VDI 的 QoS(服务质量)、统计数据和可引导性等相关参数。

上文中讲述的VDI只是一些ISO文件或虚拟机的硬盘文件,这些文件如果单独放在一起是没有任何价值的。正如描述中的那样,VBD是用在VDI和VM之间的映射,如果没了这层映射,光有VDI也是不行的。

利用xe命令查看“UCA-VM-10.24”这个主机含有哪些VBD,首先查看UCA-VM-10.24的UUID号

  [root@xs-10 ~]# xe vm-list name-label=UCA-VM-10.24

uuid ( RO)           : 89577946-f487-76a6-387e-86daaca15bef

     name-label ( RW): UCA-VM-10.24

    power-state ( RO): halted

再查看

[root@xs-10 ~]# xe vbd-list vm-uuid=89577946-f487-76a6-387e-86daaca15bef

uuid ( RO)             : a798413b-df47-9fb5-4b4d-56539a26eaf2

          vm-uuid ( RO): 89577946-f487-76a6-387e-86daaca15bef

    vm-name-label ( RO): UCA-VM-10.24

         vdi-uuid ( RO): 34fc2c1c-a3aa-43c7-95e4-b8bf6603e52f

            empty ( RO): false

           device ( RO): hda

可以看出上面的VBD其实将第2节中的VDI和UCA-VM-10.24这个虚拟机做了个映射。也就是说如果我将上图中的disk1这个VDI attach到另一个主机如SQL Server,则VDI不变,而你用xe vbd-list 这个命令查看UCA-VM-10.24这个主机时,会发现少了一个VBD,而SQL Server主机会多了一个VBD。

知道了如上的原理,接下来添加virtual disk就好办了,步骤很简单:

1、在某个SR下面建新的vdi,命名为disk3,其实就是创建虚拟机的硬盘文件

xe vdi-create name-label=disk3 type=user sr-uuid=0554628e-448d-fbdf-4544-04cc4f390529 virtual-size=4GiB 
5b4dfa6a-17f0-4207-b7f2-9d205f4517a9--新的VDI的UUID


2、利用新得到的vdi号创建新的vbd,其实就是为上一步创建的硬盘文件和虚拟机之间做映射

[root@xs-10 ~]# xe vbd-create vdi-uuid=5b4dfa6a-17f0-4207-b7f2-9d205f4517a9 device=5 vm-uuid=89577946-f487-76a6-387e-86daaca15bef 
9bcad328-4006-fb95-eea8-87de94bf0ff8


3、将创建的vbd plug即可。

[root@xs-10 ~]# xe vbd-plug uuid=9bcad328-4006-fb95-eea8-87de94bf0ff8 
You attempted an operation on a VM which requires PV drivers to be installed but the drivers were not detected. 
vm: 89577946-f487-76a6-387e-86daaca15bef (UCA-VM-10.24)

http://taotao1240.blog.51cto.com/731446/888387

XenServer中LVM的性能

在XenServer 5.5以后,提供了snapshot和fast clone的功能,这些功能,具有一定的性能开销,但能够带来一定的灵活性。纯粹为了性能,在基于LVM的存储上支持创建RAW格式的VDI,而默认创建的VDI为VHD格式。RAW格式,虽然能够带来性能的提升,但XenServer不支持RAW格式 VDI的快照。

基于能够通过XenCenter或者命令行快照挂载了RAW格式VDI的虚机,但是这些快照可能只是部分内容,所以一定不要快照使用RAW格式 VDI的虚机。找到并删除这些RAW格式VDI的快照,可以使用:


#该命令用于查看VDI的snapshot-of参数和VDI的UUID
xe vd-list params=snapshot-of,uuid
找到RAW格式VDI的快照后,删除即可,或者通过XenCenter删除。

创建RAW格式的虚机磁盘需要使用命令行操作:


#首先创建VDI
xe vdi-create sr-uuid=<sr-uuid> type=user virtual-size=<virtual-size> name-label=<vdi name> sm-config:type=raw
#附加RAW格式VDI到指定的VM即可
在RAW与VHD之间转换

Citrix官方没有提供直接的工具在两者之间转换。所以,需要转换的话,只能自己解决了,可以想到的两种方法一是,新建VDI,然后把两个VDI同时挂载到一个VM,然后在VM内存,手动来同步数据,另外一种,使用linux的dd命令来copy VDI中的block。

只要确保新VDI的尺寸大于等于原有VDI的virtual size即可。

从VHD转换成RAW格式比较容易处理,但是如果冲RAW格式转换成VHD就比较麻烦了,所以不推荐直接操作VDI,所以,挂到VM上,进行基于文件或者数据的copy更安全和简单。

XenServer中License的设置对各种操作的影响

在XenServer中,License的设置以及XenServer的版本对资源池中的操作具有一定的影响。

首先,XenServer的License有大体两种,一种为.xslic格式,一种为.lic格式。XenServer的授权版本分Free Edition,Advanced,Enterprise,Platinum Edition以及Enterprise-XD共5种。其中,在当前最新版本以及后续版本中,将不再支持.xslic格式的商业授权版License,免费版将任然采用.xslic格式。

License过期后,将服务启动新的虚机或者恢复已经暂停的虚机,除非重新激活。

License宽限期:默认情况下,XenServer会同License通信,检查License,获取License成功以后,XenServer主机会每5分钟与License Server通信一次,发送心跳消息,声明主机处于活动状态。如果通信失败,XenServer讲进入30天的宽限期,如果在宽限期内,仍然无法与License Server取得联系,那么主机将会处于License过期状态,VM将无法启动和恢复,但不影响正在运行的虚机。

特别地,在一个资源池中,如果各个主机的License授权版本不相同的情况下,对各种操作有一定的限制和影响。

资源池中,各种高级功能受资源池中,license版本最低版本的主机影响,例如:资源池中具有高级版和白金版的主机,那么资源池中,默认只能使用高级版主机的功能
在新的主机加入资源池的时候,必须先对主机进行授权,才能加入到资源池,而且,新主机的License版本必须同资源池中License授权版本最低的一致,否则,无法加入资源池
所以,不推荐在资源池中,混合使用不同的license授权

XenServer需要配置多少网卡

最常见的场景是XenServer for Xendesktop,XenServer服务器作为基础架构存在,对网卡的配置有一定的要求,不管项目大小,我们可能都会问,究竟配置多少网卡就可以了?然而,由于需求的不同,比如冗余,吞吐量,安全,扩展性等等,我们需要作出权衡来配置数量。

XenServer5.6需要最少1块网卡,最多支持16块网卡,8个bonds(每2个网卡bond成一个)。

PS:XenServer的bond支持两种模式,一种是Active/Active模式,另外一种是Active/Passive模式。AA模式的bond支持SLB(source load balancing),同时支持冗余功能,而AP模式只有redundancy(冗余)而不具备LB(负载均衡)功能。

一般处于冗余,安全和吞吐量的考虑,可能会有以下几种情形。

存储:典型的,大量的用户使用存储,而且负载较高的时候,会了提供有效的网络吞吐量,一般建议是使用单独的网卡来连接存储。
PVS:PVS对网络的要求也是比较高的。而且,网络对PVS的性能影响较大,所以如果有PVS需求,也是需要单独的网卡来托管流量。典型的WIN7 x86虚拟桌面,在启动时候需要传输166M左右的数据。所以,有效的带宽可以根据此来计算。PS:不是所有的虚机都是同时启动。
VM:虚拟机需要和后端的基础架构通信,包括DC(域控),Web Server,Database Server,file Server等等。如果有效带宽不够,会影响到用户的体验。
管理口:XenServer的管理流量一般情况下推荐和其他流量分离,在安全性,稳定性上都有很大好处,而且不影响正常使用的流量。管理口的最大流量在于虚机的在线迁移等操作。
Backups:备份,在XenDesktop的环境中,如果不使用PVS,那么虚机的备份是非常消耗网络资源的。所以,也是需要单独来分配网卡。
虽然能够换更好的网卡来提高吞吐量。但是分离不同类型的网络流量在管理和安全以及网络的有效利用上还是有很好的帮助。虽然可以使用VLAN等技术来实现,但推荐使用独立网卡。

另外,为了防止单个网卡的网线或者网卡问题,导致的网络不可用,所以推荐所有的网卡都做绑定后使用。也就是推荐网卡数量为2,4,6,8,……

流量基本包括了:management,storage,VM,PVS,backup。

所以,一般情况下,所有流量都走同一bond,那么就只需要使用1个bond(2 NIC)

每有流量需要独立,增加1个bond(2 NIC).

2 x Network Cards:
Bond 1 - management, storage, virtual machine, provisioning, backup

4 x Network Cards:
Bond 1 - management, provisioning and virtual machine
Bond 2 - storage and backup

6 x Network Cards:
Bond 1 - management and virtual machine
Bond 2 - provisioning
Bond 3 - storage and backup

8 x Network Cards:
Bond 1 - management
Bond 2 - virtual machine
Bond 3 - storage and backup
Bond 4 - provisioning

扩展XenServer的Local Storage

有些时候,可能需要在XenServer中使用大容量的本地存储的时候,可能就需要做一些简单的处理。

XenServer5.6中,每个分区的大小不能超过2TB,这受限制于文件块索引的限制,VDI的大小最大不能超过2TB,但是,由于XenServer5.6中,LVM以及是最新版的LVM2,支持超过2TB的大容量本地存储。

但是XenServer5.6在安装的时候是无法处理超过2TB的容量,所以,安装的时候,需要对启动盘做一些处理,安装的时候使用的容量不能超过2TB,安装完成以后,再来对local storage进行扩展,即可支持大容量的本地存储。但是对RAID的支持可能就会有些问题了。。

1、安装在2TB以下容量的磁盘

2、扩展Local Storage

详细的截图,没有了,只说下简单的命令:

查看当前的逻辑组:vgdisplay ,用来查看当前的组的UUID
添加磁盘到LVM中:pvcreate,命令格式:pvcreate /dev/sdb
如果/dev/sdb在安装XenServer以前已经安装过其他系统,或者以前残留的分区,可能需要删除以下分区,命令为:fdisk /dev /sdb,此时,按m进入菜单,按d用来删除分区,删除完以后,按w写入修改。清理完分区以后就可以pvcreate了
扩展Virtual Group:vgextend <VG_Xenstorage_UUID> /dev/sdb,其中,VG Xenstorage UUID为第一步查看到的值,/dev/sdb即为新加的物理盘
扩展完所有的磁盘以后,即完成了。
扩展完以后,可能会看到local storage的容量没有变化,可以重启下服务器以后就可以看容量的变化。

xenserver删除和重建SR

如何删除在XenCenter里无法删除的SR存储
因为PBD已经连接的缘故,我们无法直接使用sr-destroy删除SR。
首先我们先找到SR所在的PDB
xe sr-list #找到要删除的SR
xe pbd-list sr-uuid=SR的UUID

然后断开连接
xe pbd-unplug uuid=PBD的UUID

然后删除SR
xe sr-destroy uuid=SR的UUID

如果上一步无法完成,请尝试使用此方法:
xe sr-forget uuid=SR的UUID

在XenServer中用新硬盘创建新的Storage存储
xe sr-create name-label="名称" shared=false device-config-device=硬盘设备(如:/dev/sdb) type=lvm

------

补充:
查看xenserver后台任务:
xe task-list
结束xenserver后台任务:
xe task-cancel uuid=xxxxxxxx
重启XAPI
service xapi restart

Citrix XenCenter安装VM详解

最近在VMware7.0上装了个Citrix XenServer,Citrix XenServer 是企业级面向云计算的虚拟平台,有 XenServer, Essentials for XenServer, Enterprise Edition 和 Platinum Edition 三种版本,其中 XenServer 是免费的,和 VMware ESXi 是同级别的竞争产品。XenServer 的安装过程和 VMware ESX4.0 一样容易,安装完后界面如下。和 VMware ESX4.0 类似,主要的操作和配置都可以在一个另外一台装有 XenCenter 客户端的机器上完成(和 VMware vShpere Client 一样)。

       和VMware ESX4.0有点不同的是,XenServer 不能在 XenCenter 客户端管理界面里直接导入 iso 后安装操作系统,需要先把这些 iso 预存到另一台机器上,然后用 NFS 的方式访问。所以我们先在其他的机器开设一个 iso 目录并收集一些 iso 文件,用 NFS 导出这个 iso 目录,然后在 XenServer 服务器上手动把这个目录挂上,这样才能在 XenServer 和 XenCenter 管理界面里看到所有的 iso 文件,也就是说 XenServer 鼓励你把 iso 文件分开存储到另外一台单独服务器以方便管理。

接下来我们在Ubuntu上配置NFS:

    安装nfs:#sudo apt-get install nfs-kernel-server

 打开/etc/exports文件,在末尾加入:
/home/iso *(rw,sync,no_root_squash)
注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义, 各字段含义如下:
/home/iso:要共享的目录
* :允许所有的网段访问
rw :读写权限
sync:资料同步写入内在和硬盘
no_root_squash:nfs客户端共享目录使用者权限

  重启服务:
#sudo /etc/init.d/portmap restart <---重启portmap,很重要
#sudo /etc/init.d/nfs-kernel-server restart <---重启nfs服务
#showmount -e <---显示共享出的目录

  注:nfs是一个RPC程序,使用它前,需要映射好端口,通过portmap设定
命令执行情况如下:
xgc@xgc-VirtualBox:~$ sudo /etc/init.d/portmap restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service portmap restart
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the restart(8) utility, e.g. restart portmap
portmap start/running, process 474
xgc@xgc-VirtualBox:~$ sudo /etc/init.d/nfs-kernel-server restart
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
* Exporting directories for NFS kernel daemon...
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/home/xgc".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x [ OK ]
* Starting NFS kernel daemon [ OK ]
xgc@xgc-VirtualBox:~$ showmount -e
Export list for xgc-VirtualBox:
/home/iso *

  现在可以在本机上试一下:
#sudo mount -t nfs localhost:/home/xgc /mnt
注:localhost为本机linux的IP地址
这样就把共享目录挂到了/mnt目录,取消挂载用:
#sudo umount /mnt
如果用在嵌入式设备上挂载,要加上参数-o nolock

注:为Ubuntu NFS服务系统设置IP(192.168.10.44)。

到此装在Ubuntu上的NFS服务安装配置完成,在/home/iso目录下统一管理所有系统镜像iso文件。

 

下来在Citrix XenCenter上用ISO安装虚拟机系统:

一、首先我们得准备一台NFS共享服务器(就是上边的Ubuntu),IP地址192.168.10.*,用于存放linux.iso镜像文件,然后做一个NFS共享。

/home/iso  192.168.10.44(rw,insecure,sync,all_squash)

启动相关服务。关于NFS请参考:

linux下设置目录同步NFS

 

二、连接上XenServer 服务器:xenserver-axrngkqr。

三、新建一个存储仓库(New Storage Repository),用于存放linux.iso文件。

 

 或者在Console:

[root@xenserver-axrngkqr ~]# xe-mount-iso-sr 192.168.10.44:/home/flc/iso

四、安装虚拟操作系统(New VM) Linux。

五、进入控制台安装Linux系统

xenserver 使用ISO 安装虚拟机 操作系统

Citrix XenServer 是企业级面向云计算的虚拟平台,有 XenServer, Essentials for XenServer, Enterprise Edition 和 Platinum Edition 三种版本,其中 XenServer 是免费的,和 VMware ESXi 是同级别的竞争产品。XenServer 的安装过程和 VMware ESXi 一样容易,安装完后界面如下。和 VMware ESXi 类似,主要的操作和配置都可以在一个另外一台装有 XenCenter 客户端的机器上完成(和 VMware vShpere Client 一样)。

 

和 VMware ESXi 有点不同的是,XenServer 不能在 XenCenter 客户端管理界面里直接导入 iso 后安装操作系统,需要先把这些 iso 预存到另一台机器上,然后用 NFS 的方式访问。所以我们先在其他的机器开设一个 iso 目录并收集一些 iso 文件,用 NFS 导出这个 iso 目录,然后在 XenServer 服务器上手动把这个目录挂上,这样才能在 XenServer 和 XenCenter 管理界面里看到所有的 iso 文件,也就是说 XenServer 鼓励你把 iso 文件分开存储到另外一台单独服务器以方便管理,对下面的 NFS 操作不清楚的话可以参考 在 CentOS 上安装和配置 NFS 4.0:

# vi /etc/export
/home/vpsee/iso 172.16.240.164(rw,sync,no_root_squash) \
172.16.240.164(rw,sync,no_root_squash)

# /etc/init.d/portmap restart
# /etc/init.d/nfs restart
在 NFS 服务器上设置权限,允许 XenServer 服务器访问 NFS:

# vi /etc/hosts.deny
portmap:ALL

# vi /etc/hosts.allow
portmap:172.16.240.0/255.255.254.0
用 ssh 登录 XenServer 后挂在 NFS 服务器上的目录:

$ ssh root@172.16.240.164
root@172.16.240.164's password:

# xe-mount-iso-sr 172.16.240.10:/home/vpsee/iso
成功挂载后,在 XenCenter 控制台上(目前 XenCenter 只有 Windows 版本)就可以看到所有的 iso 了:

 

 剩下就好办了,有了 iso 就可以直接安装操作系统了,注意如果机器 CPU 不支持全虚拟(Intel VT 或 AMD SVM)的话会导致安装失败、报错:

xenserver-imtxsji: HVM is required for this operation

INVALID_SOURCE - Unable to access a required file in the specified repository:
file:///timp/cdrom-repo-RZ1Yem/install.386/xen/vmlinuz.
如果是这样的话就只能通过网络(Install from URL)安装半虚拟系统了。