Submitted by admin on 2012, August 21, 2:09 PM
如何删除在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
xen | 评论:0
| Trackbacks:0
| 阅读:943
Submitted by admin on 2012, August 21, 2:00 PM
最近在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系统
xen | 评论:0
| Trackbacks:0
| 阅读:913
Submitted by admin on 2012, August 21, 1:58 PM
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)安装半虚拟系统了。
xen | 评论:0
| Trackbacks:0
| 阅读:887
Submitted by admin on 2012, August 21, 1:56 PM
要在 VM 开始安装作业系统,虽然 XenServer 已包含多个范本,例如 RedHat AS 4+5、CentOS、SuSE、Oracle Enterprise Linux 等等,在这些列表内的,安装时都不须额外下载原始安装光盘; 若未在列表内,例如 RedHat AS 3,就必须使用光盘方式安装。这里说明如何在新增 VM 时以 iso 档 方式来安装所需的作业系统。
首先,登录 console,执行以下指令,创建 iso 档型式的存储库(SR - Storage Repositories )
mkdir /boot-iso
xe sr-create name-label=boot-iso type=iso device-config:location=/boot-iso device-config:legacy_mode=true content-type=iso
使用SFTP上传 iso 档至主机的 /boot-iso 即可。
注:
1.如果不小心创建错误,或重复新增,想删除存储库时,就使用 XenCenter UI,直接选择 Detach ..... 就可以了。
2.上传 iso 档至主机后,XenCenter 不能同步显示,须在 console 执行 xe-toolstack-restart 指令后,XenCenter 才可以识别到。
xen | 评论:0
| Trackbacks:0
| 阅读:1060
Submitted by admin on 2012, August 21, 1:55 PM
最近由于工作需要接触了XenServer,在学习的过程中发现XenCenter不能很好的来管理XenServer,于是开始学习命令行管理的方式,用XenCenter使用windows下共享的iso镜像文件来安装操作系统这个大家都应该会,但是我想通过命令行的方式使用windows下共享的iso镜像文件来安装操作系统,在网上找了很久,也问过一些高手,都没有能够解决,今天终于搞好了,激动的快哭了。。。。。。与是就有了以下的文章,如有错误,还请各位哥哥姐姐指教。。。。。。在此谢过。。。。。。
一。在XenServer主机上添加windows上的iso镜像文件共享存储
我在我的windows机器192.168.7.9上共享了一个文件夹iso 里面放了安装系统所需要的iso镜像文件
xe-mount-iso-sr //IP/sharename -t cifs -o username=<username>,password=<password>
示例:xe-mount-iso-sr //192.168.7.9/iso -t cifs -o username=administrator,password=P@ssw0rd
二。使用模板新建一个虚拟机(vm)
xe vm-install template=CentOS\ 5\ \(32-bit\) new-name-label=centos5
e2958c7e-bab7-235b-3426-6bd52efcf6c8
该命令返回新vm的uuid
xe vdi-resize uuid=e2958c7e-bab7-235b-3426-6bd52efcf6c8 disk-size=20GiB 可以用此命令修改vm虚拟磁盘的大小,这里我们使用默认的大小
三。将vm的虚拟硬盘设置为不可引导
1>根据vm的uuid查找vm vbd(根硬盘)的uuid
xe vbd-list vm-uuid=e2958c7e-bab7-235b-3426-6bd52efcf6c8 userdevice=0 params=uuid --minimal
718cb50b-fdcd-82ed-df5a-b100f62bc627
该命令返回vm虚拟磁盘的uuid
2>使用返回的虚拟磁盘的uuid将vm的虚拟磁盘设置为不可引导
xe vbd-param-set uuid=718cb50b-fdcd-82ed-df5a-b100f62bc627 bootable=false
四。向新建的vm添加光驱,并设置为从光驱引导
1>获取XenServer主机上的挂载的windows共享上的iso镜像文件的名称
xe cd-list
该命令显示XenServer主机上所有的iso文件名称(name-label)
2>将XenServer主机上显示的iso的name-label参数作为虚拟机光驱的cd-name参数,本例中我们安装的是CentOS5.4 32位的,所以iso的name-label为CentOS-5.4-i386-bin-DVD.iso,那么vm光驱的cd-name(名称)也为CentOS-5.4-i386-bin-DVD.iso
xe vm-cd-add vm=centos5 cd-name=CentOS-5.4-i386-bin-DVD.iso device=2
3>获取与vm新建光驱(CD驱动器)对应的VBD的uuid
xe vbd-list vm-uuid=e2958c7e-bab7-235b-3426-6bd52efcf6c8 type=CD params=uuid --minimal
ba6e0365-46b2-6972-a8f4-730139802deb
该命令会显示与vm光驱对应的VBD的uuid
4>将vm光驱的VBD设置为可引导
xe vbd-param-set uuid=ba6e0365-46b2-6972-a8f4-730139802deb bootable=true
5>将vm的安装库设置为新建的虚拟光驱,即告诉vm我们要从cdrom来安装系统
xe vm-param-set uuid=e2958c7e-bab7-235b-3426-6bd52efcf6c8 other-config:install-repository=cdrom
此处的uuid为vm的uuid
五。启动新建的vm即开始安装
xe vm-start uuid=e2958c7e-bab7-235b-3426-6bd52efcf6c8
安装过程很简单这里不写了
xen | 评论:0
| Trackbacks:0
| 阅读:959
Submitted by admin on 2012, August 12, 12:32 AM
问题:CentOS 5.1 and Xen - mount: could not find filesystem '/dev/root'
现象:http://www.centos.org/modules/newbb/viewtopic.php?topic_id=11685
解决:http://wiki.xensource.com/xenwiki/Fedora5Xen0DomU
mkinitrd --with=xennet --preload=xenblk initrd.img $(uname -r)
mkinitrd
功能说明:建立要载入ramdisk的映像文件。
Linux启动时,要先载入硬盘驱动,如IDE,SCSI,RAID,然后才能加载root分区。
该工具根据/etc/modprobe.conf文件,自动寻找要加载的驱动文件。
语 法:mkinitrd [-fv][--omit-scsi-modules][--version][--preload=<模块名称>][--with=<模块名称>][映像文件][Kernel 版本]
参 数:
--builtin=<模块名称> 如果驱动被编译进内核,mkinitrd就找不到相应驱动模块。该选项用用于忽略这些驱动,而不显示成错误;
--fstab=fstab 指定fstab文件,默认是:/etc/fstab
--omit-scsi-modules 不要载入SCSI模块
--omit-lvm-modules 不要载入LVM模块
--omit-raid-modules 不要载入Raid模块
--preload=<模块名称> 指定要在载入Scsi模块前就要载入的模块
--with=<模块名称> 指定要在载入Scsi模块后才载入的模块
--version 显示版本信息。
-v 执行时显示详细的信息。
-f 若指定的映像问家名称与现有文件重复,则覆盖现有的文件。
转
xen | 评论:0
| Trackbacks:0
| 阅读:1131
Submitted by admin on 2012, August 11, 8:30 PM
1、Hint to configure libvirt without bothering qemu errors in xen
This is not a bug, but annoying
Since I have xen and no kvm the qemu dirvers report errors all the time - This may help everyone with the same setup.
libvir: QEMU error : connect: /usr/local/var/run/libvirt/qemud-sock: No such file or directory
libvir: warning : Failed to find the network: Is the daemon running ?
libvir: error : library call virConnectNumOfNetworks failed, possibly not supported libvir: error : library call virConnectNumOfDefinedNetworks failed, possibly not supported
[..]
The last two lines are printed every second!
To "unconfigure" qemu and therefore prevent these message flooding use
./configure --without-qemu
simple but useful ;-)
2、系统日志中大量如下警告:
Dec 2 16:11:08 gamebbs2 snmpd[1056]: Received SNMP packet(s) from UDP: [192.168.239.93]:-13093
Dec 2 16:11:08 gamebbs2 kernel: audit(1228205468.528:120): avc: denied { read append } for pid=1056 comm="snmpd" name="snmpd.log" dev=dm-0 ino=3717987 scontext=system_u:system_r:snmpd_t:s0 tcontext=user_u:object_r:var_log_t:s0 tclass=file
Dec 2 16:11:08 gamebbs2 snmpd[1056]: Received SNMP packet(s) from UDP: [192.168.239.93]:-13092
Dec 2 16:11:08 gamebbs2 kernel: audit(1228205468.940:121): avc: denied { read append } for pid=1056 comm="snmpd" name="snmpd.log" dev=dm-0 ino=3717987 scontext=system_u:system_r:snmpd_t:s0 tcontext=user_u:object_r:var_log_t:s0 tclass=file
Dec 2 16:16:15 gamebbs2 snmpd[1056]: Received SNMP packet(s) from UDP: [192.168.239.93]:-12384
原因是开启了selinux,snmp的日志文件因受selinux保护,snmp不能正常写入,解决方法有几种:
(1)停止snmpd,删除snmpd日志文件,再启动snmpd即可恢复,不过此方法处理后可能在下次重启系统后仍然会出现这个情况。
(2)直接关闭selinux(setenforce 0)
(3)修改selinux的策略(selinux不熟,哪位高手提供一下方法)
3、网卡lo流量很高
初步估计与IPv6有关,关闭IPv6支持,重启系统后恢复
vi /etc/modprobe.conf 加入下面两行
alias net-pf-10 off
alias ipv6 off
4、ssh远程连接到服务器后进行操作会停顿,在控制台相接操作没有此情况
初步估计与IPv6有关,关闭IPv6支持,重启系统后恢复
vi /etc/modprobe.conf 加入下面两行
alias net-pf-10 off
alias ipv6 off
另可能与网卡流量限制有关,查看网卡流量限制
tc qdisc show dev eth0
5、在rh5u2前的系统上安装Fedora10作为DomU不成功
可能是python-virtinst包版本过低,可以尝试更新此包再安装。
6、在XEN主机上,写在/etc/init.d/network上的路由不生效,但是改为非虚拟系统的时候正常
因XEN系统中启动网络的方法与非虚拟主机系统有些不同,具体可以参考XEN相关文档,将路由写到/etc/init.d/xend中即可正常生效
7、ssh连接domU可以正常连接,使用xm console domname连接domU的控制台的时候报如下错误:
xenconsole: Could not read tty from store: No such file or directory
某些客户机还可能出现无法启动的现象。
可能是xend进程有问题,可以考虑重启xend进程:
/etc/init.d/xend restart
8、安装domU过程中,在输入客户机IP后不能获取到安装源的数据,使用DHCP获取不到地址
查看dom0中网络配置情况,检查是否domU连接到了错误的网桥上
brctl show
如果是,修正vif连接到的网桥,用brctl命令进行删除和添加
例如:
#brctl show #查看网络连接情况
#xm list #查看该DomU所的ID来确定vif号码(ID号与vif号相同)
#brctl delif virbr0 vifx.0 #从错误的网桥中删除vifx.0(x.0中x为ID编号,0表示第一块网卡,下同)
#brctl addif xenbr0 vifx.0 #在正确的网桥中加入vifx.0
#brctl show #检查最终结果
9、安装客户机过程中跨网段安装失败
首先检查安装客户机的时候配置的网络,客户机网络与主机网络应该相同,同时主机与安装服务器够连通,并且客户机设置的网关应该为该客户机所配置网段连通安装服务器的路由网关,可能不是默认网关,对于系统安装服务器与xen主机之间跨网段的情况网关设置非常重要。如果使用DHCP来安装客户机,通常可能会遇到此情况。
10、64位的RHEL5U2机器,安装客户机,重启客户机等都会卡住,在check image附近
初步估计为在有客户机运行期间,主机的时间跟实际时间有较大的差距的情况下运行了ntpdate的原因,如果已经运行了该命令,暂时未发现较好的解决方法,只能重启物理服务器。
如果还未运行客户机,可考虑先关闭客户机,再运行ntpdate校准,然后再启动客户机。
11、在单台物理XEN主机上同时进行两个虚拟客户机的安装可能会出现冲突,导致系统无响应
12、用virt-install安装客户机的时候报如下错误:
virDomainCreateLinux() failed XML description for domain is not well formed or invalid
Domain installation may not have been
successful. If it was, you can restart your domain
by running 'virsh start new216'; otherwise, please
restart your installation.
Mon, 09 Mar 2009 14:57:22 ERROR virDomainCreateLinux() failed XML description for domain is not well formed or invalid
Traceback (most recent call last):
File "/usr/sbin/virt-install", line 502, in ?
main()
File "/usr/sbin/virt-install", line 462, in main
dom = guest.start_install(conscb,progresscb)
File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 813, in start_install
return self._do_install(consolecb, meter)
File "/usr/lib/python2.4/site-packages/virtinst/Guest.py", line 834, in _do_install
self.domain = self.conn.createLinux(install_xml, 0)
File "/usr/lib64/python2.4/site-packages/libvirt.py", line 573, in createLinux
if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self)
libvirtError: virDomainCreateLinux() failed XML description for domain is not well formed or invalid
出现此报错应该是主机系统在启动的时候有起libvirtd服务,但是后来关闭了,而virt-install工具在进行客户机系统安装的时候错误地将客户机的网卡连接到libvirtd服务起的网桥virbr0上,此时libvirtd是关闭的,所以virbr0也不存在了,就出现了上面的错误信息。
解决方法有两个:
(1)、启动libvirtd服务后重新用原来的virt-install命令安装客户机操作系统;
#/etc/init.d/libvirtd start
(2)、在原来的virt-install命令后面加-b参数指定需要连接的网桥,如果未调整网络,一般默认的网桥应该为xenbr0
要查看网桥的名称可以使用brctl命令查看
#brctl show
[root@XenHost ~]# brctl show
bridge name bridge id STP enabled interfaces
xenbr0 8000.feffffffffff no vif5.0
vif4.0
vif3.0
vif2.0
peth0
vif0.0
此处我们已经关闭了libvirtd服务,剩下的网桥的名称为xenbr0(如果创建了多个网桥,选择自己需要的网桥名称)
#virt-install -n kiro-test -r 256 --vcpus=1 -f /data/rh5 --nographics -p -d -l "http://192.168.0.1" -b xenbr0
xen | 评论:0
| Trackbacks:0
| 阅读:782
Submitted by admin on 2012, July 28, 6:39 PM
用CentOS5.5构建的Xen domain-0突然发现连接不上网络。用ifup eth0一试,出现以下错误:
Device eth0 has different MAC address than expected, ignoring
把/etc/sysconfig/network-scripts/ifcfg-eth0里的HWADDR那一行comment out后,出现以下信息:
vif0.0 received packet with own address as source address
最后,把/etc/sysconfig/network-scripts/ifcfg-eth0里的
HWADDR=00:xx:xx:xx….
改成
MACADDR=00:xx:xx:xx…
再运行/etc/rc.d/init.d/network restart重启网络服务后,终于可以正常连接网络。
#之后,原来是想再现这个错误,却发现把MACADDR改回HWADDR也可以连接上网络
xen | 评论:0
| Trackbacks:0
| 阅读:1198