当前位置:文档之家› xenserver命令解决问题

xenserver命令解决问题

xenserver命令解决问题
xenserver命令解决问题

XenServer 通过ionice 限制VM 虚拟机硬盘IO

发布时间:June 8, 2013 // 分类:虚拟化 // 1 Comment

之前有文章介绍Xen 下通过ionice 限制VM 虚拟机硬盘IO 优先级,XenServer 获取虚拟机进程和Xen 不同,可通过以下方法查找虚拟机IO 进程,并使用ionice 限制。

首先获取VM 虚拟机的UUID : 1 x e vm-list name-label= --minimal

然后再获取VM 的DOM ID : 1 l ist_domains |awk '// {print $1}'

通过DOM ID 获取VM 相对应的进程ID : 1 2 3 ps aux|grep xb.*.xvd

root 10995 0.0 0.0 0 0 ? S 10:08 0:01 [xb.00003.xvda] root 10996 0.0 0.0 0 0 ? S 10:08 0:00 [xb.00003.xvdd] 使用ionice 调整相应进程的IO 优先级策略即可。

XenServer 修改Linux/Windows 系统模板内存等资源限制 发布时间:January 5, 2013 // 分类:虚拟化 // No Comments

XenServer 虚拟机系统模板对内存等资源有做限制,在新建虚拟机时分配的资源不能小于模板最小限额。 XenServer 下查看CentOS 6 32位模板内存最小限制:

1 2 xe template-list name-label=CentOS\ 6\ \(32-bit\) params=memory-static-min --minimal 536870912

可见内存最小限制为512M ,如果安装Centos6虚拟机内存不能小于512M ,修改Centos 模板内存最小限制为128M : 1 2 3 4 xe template-list name-label=CentOS\ 6\ \(32-bit\) params=uuid --minimal #查看Centos 模板uuid

xe template-param-set uuid= memory-static-min=128MiB

#修改内存最小限制为128M

XenServer 通过网络安装Debian Squeeze/CentOS 虚拟机 发布时间:December 3, 2012 // 分类:虚拟化 // No Comments

XenServer 可以通过在本地新建ISO 存储或NFS 存储挂载ISO 镜像安装系统,对于Linux 可支持通过网络http 或ftp 安装,以下记录下XenServer 通过网络安装Debian 和CentOS 系统。

新建虚拟机:

1 2 xe vm-install template=Debian\ Squeeze\ 6.0\ \(32-bit\) new-name-label=debian6 sr-name-label=Local\ storage

#返回vm uuid

设置安装源:

1 x e vm-param-set uuid=

2 3 other-config:install -repository=https://www.doczj.com/doc/c94984258.html,/debian/

#debian5:https://www.doczj.com/doc/c94984258.html,/debian-archive/

#centos 使用类似链接:https://www.doczj.com/doc/c94984258.html,/centos/6.3/os/i386/

新建虚拟网卡: 1 2 3 xe vif-create vm-uuid= network-uuid= mac=random device=0 #查看网卡uuid

xe network-list bridge=xenbr0 --minimal

启动虚拟机:

1 x e vm-start name-label=debian6

XenServer 获取所有VM 虚拟机IP 及对应MAC 地址

发布时间:November 20, 2012 // 分类:虚拟化,Shell // 1 Comment

XenServer 5.6下编写,用于获取所有VM 虚拟机IP 和对应MAC 地址,Shell 脚本如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #!/bin/bash

#http://www.haiyun.me

if [[ ! -e mac-ip.txt ]];

then

touch mac-ip.txt

else

> mac-ip.txt

fi

for vps in `xe vm-list |awk '/name/ {print $4}'`

do

case $vps in

*"Control"* ) continue ;;

esac

writeline=`xe vif-list vm-name-label=$vps params=MAC|awk '/MAC/ {print $5}'` writeline+=" "

writeline+=`xe vm-list name-label=$vps params=networks|awk '/network/ {print $5}'`

echo $writeline >> mac-ip.txt

done

XenServer 获取VM 虚拟机名称与MAC 地址参考:

http://www.haiyun.me/archives/xenserver-vmname-mac.html 。

XenServer 获取所有VM 虚拟机名称及对应MAC 地址

发布时间:November 19, 2012 // 分类:虚拟化,Shell // No Comments

XenServer 5.6测试通过,用于查找所有VM 及其对应MAC 地址写入output.csv 文件,直接下载shell 脚本。 1 #!/bin/bash

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 #http://www.haiyun.me

if [ $(whoami ) != 'root' ];

then

echo "Must be root to run $0"

exit 1;

fi

if [[ ! -e output.csv ]];

then

touch output.csv

else

> output.csv

fi

for vmuuid in `xe vm-list | awk -F ':' '/^uuid/ {print $2}'` ;

do

namelabel=`xe vm-param-get uuid=$vmuuid param-name=name-label`

case $namelabel in

*"Control domain"* ) continue ;;

esac

i=`xe vif-list vm-name-label="$namelabel" | grep device | wc -l`

writeline="\"$namelabel\""

writeline+=","

for ((j=0;j<$i;j++))

do

mac=`xe vif-list vm-name-label="$namelabel" params=MAC device=$j | awk -F ': ' '/^MAC/ {print $2}'`

if [ -z "$mac" ]

then

i=`expr $i + 1`

continue

else

writeline+=$mac

fi

if [ $j -lt `expr $i - 1` ]

then

writeline+=","

fi

done

echo "$writeline" >> output.csv

done

echo "VMs and their respective MAC addresses have been written to output.csv in the current directory."

exit 0

使用sFlowTrend 监控XenServer 服务器

发布时间:October 22, 2012 // 分类:虚拟化 // No Comments

服务器端安装Host sFlow Agent 代理客户端,用作发送sFlow 数据到sFlowTrend 分析端,支持多种Windows /Linux /Uinx 系统。

Host sFlow 下载地址:https://www.doczj.com/doc/c94984258.html,/

sFlowTrend 下载地址:https://www.doczj.com/doc/c94984258.html,/products/sFlowTrend.php

XenServer 6可直接安装Host sFlow ,XenServer5要先配置为Open vSwitch 模式支持sFlow 。 1 2 wget

https://www.doczj.com/doc/c94984258.html,/project/host-sflow/REL-1_22/hsflowd_XenServer_56FP 2-1.22.2-1.i386.rpm

rpm -ivh hsflowd_XenServer_56FP2-1.22.2-1.i386.rpm

配置Host sFlow : 1 2 3 4 5 6 7 8 9 10 11 cat /etc/hsflowd.conf

#http://www.haiyun.me

sflow {

DNSSD = off

polling = 20

sampling = 512

collector {

ip = 192.168.1.155

udpport = 6343

}

}

启动Host sFlow Agent :

1 /etc/init.d/hsflowd start

然后在sFlowTrend配置代理端,不久即可看到监控的数据:

分析XenServer 虚拟交换机sFlow 数据: 1 2 ovs-vsctl -- --id =@sflow create sflow agent=xenbr0 targe=\"192.168.1.155:6343\" header=128 sampling=512 polling=30 \

-- set bridge eth0 sflow=@sflow

XenServer5.6网络配置为虚拟交换机Open vSwitch 模式并开启NetFlow 输出

发布时间:October 22, 2012 // 分类:虚拟化 // No Comments

新安装的XenServer 6默认为Open vSwitch ,XenServer5.6默认为网桥模式,查看当前网络模式: 1 2 cat /etc/xensource/network.conf

openvswitch

更改网络为虚拟交换机Open vSwitch 模式: 1 2 #http://www.haiyun.me

xe-switch-network-backend openvswitch

切换回网桥bridge 模式:

1 x e-switch-network-backend bridge

配置虚拟交换机输出NetFlow 数据到分析端,可参考:Linux 下Nfsen 和Nfdump 配置Netflow 分析端。 1 2 ovs-vsctl -- --id =@netflow create netflow targe=\"192.168.1.5:9995\" active_timeout=30 \

-- set bridge xenbr0 netflow=@netflow

输出sFlow 数据: 1 2 ovs-vsctl -- --id =@sflow create sflow agent=eth1 targe=\"192.168.1.5:9995\" header=128 sampling=512 polling=30 \

-- set bridge xenbr0 sflow=@sflow

查看是否有NetFlow 数据输出: 1 2 3 4 5 6 tcpdump -nn port 9995

tcpdump: WARNING: eth0: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

18:12:16.535132 IP 192.168.1.15.55104 > 192.168.1.3.9995: UDP, length 600

18:12:17.544569 IP 192.168.1.15.55104 > 192.168.1.3.9995: UDP, length 216

更改Netflow 或sFlow 参数:

1 o vs-vsctl set NetFlow xenbr0 targe=\"192.168.1.3:9995\"

查看Netflow 或sFlow 列表:

1 o vs-vsctl list netflow/sflow

删除Netflow/sFlow :

1 o vs-vsctl remove bridge xenbr0 netflow/sflow

据说Open vSwitch 模式在XenServer 下并不稳定,只为输出NetFlow 可使用Fprobe 。

XenServer 虚拟机VM 挂起不能关机、重启解决

发布时间:August 13, 2012 // 分类:虚拟化 // No Comments

XenServer 下虚拟机遇到死机或其它意外情况时通过XenCenter 操作重启或关机时会遇到虚拟机挂起的状况,表现为XenCenter 中虚拟机名字显示黄色状态,右键菜单只有属性可选,VM 不能再进行其它操作,为此总结了一些解决方法。

首先尽量避免此类情况的发生,当虚拟机处于死机状态时尽量使用硬关机、硬重启:

1 x e vm-reboot force=true name-label=Centos5.7

当进行正常关机、重启时挂起可取消之前的任务操作,再进行硬操作:

1 2 3 4 xe task-list

#查看当前任务列表和uuid

xe task-cancel uuid=

#取消当前任务

如果以上不能解决可尝试以下:

销毁VM 对应的domain id ,VM 会重启。

1 2 3 4 xe vm-list params=uuid name-label=

#或

xe vm-list name-label= --minimal

#获取指定VM 的uuid

5 6 7 8 list_domains |grep

#获取VM 对应的domain id

/opt/xensource/debug/destroy_domain -domid

#销毁VM 对应的domain id

使VM 崩溃: 1 2 3 4 5 6 7 8 xe vm-list params=actions-after-crash name-label=

#查看VM 崩溃后的操作,默认为重启 xe vm-list params=uuid name-label=

#获取指定VM 的uuid

list_domains |grep

#获取VM 对应的domain id

/usr/lib/xen/bin/crash_guest

#触发VM 崩溃

如果VM 处于脱机状态,而VM 在数据库中被标记为运行,可重置VM 电源状态为关机:

1 x e vm-reset-powerstate force=true vm=

其它可尝试重启xe 工具,不要遇到xapi 不能启动就好。。。

1 x e-toolstack-restart

XenServer 增加硬盘为SR 卷或扩充到VG

发布时间:July 2, 2012 // 分类:虚拟化 // No Comments

1.以SR 方式增加硬盘:

查看新增加的硬盘分区: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #http://www.haiyun.me

fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes

255 heads, 63 sectors/track, 5221 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 523 4194304 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2 523 1045 4194304 83 Linux

/dev/sda3 1045 5221 33549043 8e Linux LVM

Disk /dev/sdb: 1073 MB, 1073741824 bytes

255 heads, 63 sectors/track, 130 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

新建为SR :

1 x e sr-create type =lvm content-type =user device-config:device=/dev/sdb name-label=sr2

2 5a953701-83ab-b22b-3903-c3932d3a710d

2.新加硬盘以LVM 方式扩容到VG :

新建PV : 1 p vcreate /dev/sdb

查看VG 名称: 1 v gscan

扩充PV 到VG : 1 v gextend VG_XenStorage-5a953701-83ab-b22b-3903-c3932d3a710d /dev/sdb

XenServer 限制虚拟机带宽、网络连接速度

发布时间:June 27, 2012 // 分类:虚拟化 // 2 Comments

XenServer 可以在虚拟网络接口VIF 上做带宽限制,设置如下:

为特定VIF 设置QOS 算法类型为ratelimit (速率限制) 1 x e vif-param-set uuid= qos_algorithm_type=ratelimit

设置VIF 带宽参数: 1 2 xe vif-param-set uuid= qos_algorithm_params:kbps=5120

限制VM 网络速率5120K ,相当于带宽40M.

XenServer 虚拟机CPU 优先级设置

发布时间:June 27, 2012 // 分类:虚拟化 // No Comments

首先获取XenServer 虚拟机UUID :

1 x e vm-list name-label=www.haiyun.me params=uuid --minimal

1.设置VM 虚拟机的权重,权重较高的VM 优先占用CPU 。

1 2 xe vm-param-set uuid= VCPUs-params:weight=1024

#将优先级调整为1024,可选范围1-65535,数值越大优先级超高,默认值为 256。

2.设置VM 的CPU 最大使用率:

1 2 xe vm-param-set uuid= VCPUs-params:cap=200

#限制CPU 上限200%,默认为0.

3.也可设置XenServer 虚拟机使用特定CPU :

1 2 xe vm-param-set uuid= VCPUs-params:mask=6,7,8

#指定VM 使用物理CPU6,7,8

调整XenServer 虚拟机CPU 个数:https://www.haiyun.me/archives/xenserver-vm-cpu.html

XenServer 修改虚拟机时间

发布时间:June 27, 2012 // 分类:虚拟化 // No Comments

Xenserver 下虚拟机默认同步主服务器时钟,使用date 自定义时间无效。

解决方法: 1 s ysctl xen.independent_wallclock=1

也可将此参数添加到sysctl 配置文件: 1 2 vim /etc/sysctl.conf

xen.independent_wallclock=1 生效:

1 s ysctl -p

XenServer 添加/扩充虚拟机VM 硬盘

发布时间:June 27, 2012 // 分类:虚拟化 // No Comments

1.添加虚拟机硬盘,首先查看所新建硬盘所在sr-uuid :

1 x e sr-list

新建VDI : 1 2 xe vdi-create sr-uuid= type =user virtual-size=1GiB name-label= b9fa32eb-3041-4f82-8e67-f2e2fa8baf8f #新建的vdi-uuid

新建VBD : 1 2 xe vbd-create vdi-uuid= vm-uuid= device=1 VM 硬盘编号,从0开始 2f25f904-24c9-bf2b-eca4-86fab90f769e #新建的vbd-uuid

应用VBD :

1 x e vbd-plug uuid=

VDI 与VBD 的关系:http://www.haiyun.me/archives/xenserver-sr-vdi.html

2.扩充虚拟机硬盘,首先关闭要扩充硬盘的虚拟机.

1 x e vm-shutdown vm=

查看要增加容量的vdi-uuid : 1 x e vm-disk-list vm=

扩充容量:

1 x e vdi-resize uuid= disk-size=30GiB

扩充完成,然后重新启动虚拟机,进入系统将硬盘扩充到虚拟机。

XenServer 命令调整虚拟机CPU 个数

发布时间:June 27, 2012 // 分类:虚拟化 // No Comments

XenServer 客户端管理工具XenCenter 很强大,一般常用操作都可做到,感觉有时还是SSH 操作更方便一点。

获取VM 虚拟机uuid : 1 x e vm-list name-label= --minimal

查看当前VM CPU 个数

xe vm-param-list uuid=|grep VCPUs

VCPUs-max ( RW): 2 #最大CPU 个数

VCPUs-at-startup ( RW): 2 #虚拟机启动时CPU 个数 1 2 3 4 修改虚拟机CPU 个数,此操作需先关闭VM 。

```bash

xe vm-shutdown force=fale name-label=

xe vm-param-set VCPUs-max=2 VCPUs-at-startup=2 uuid=

Xenserver 查看VPS/VM 对应虚拟网卡编号vif

发布时间:June 26, 2012 // 分类:虚拟化 // No Comments

先获取XenServer 虚拟机uuid : 1 2 3 4 #http://www.haiyun.me

xe vm-list |grep -A 1

#或

xe vm-list name-label= --minimal 获取VIF 参数:

1 x e vm-param-list uuid=|grep dom-id

另一种方法:

1 x e vm-list params=dom-id ,resident-on name-label=

Xenserver 挂载ISO 存储

发布时间:April 22, 2012 // 分类:虚拟化 // No Comments

XenServer 可挂载ISO 光盘安装系统或做为Livecd 、PE 使用,挂载ISO 存储有三种方法,各有优劣。

1.新建目录并挂载为ISO 存储,此方法最为简单,不过Xenserver 系统剩余空间有限。 1 2 3 mkdir /iso #新建目录

xe sr-create name-label=boot-iso type =iso device-config:location=/iso/Win_pe_iso/ device-config:legacy_mode=true content-type =iso #新建ISO 存储

xe-mount -iso-sr /iso/ #挂载存储

2.新建LV 卷,可自定义大小,稍复杂。 1 2 3 4 5 6 7 vgdisplay #先查看剩余空间,新建LV 不要大于

lvcreate -L 20GB -n iso VG_XenStorage-3aad96c1-a78c-022d-1e9b-a3292ce54067 #新建lv 卷iso

mkfs.ext3 /dev/VG_XenStorage-3aad96c1-a78c-022d-1e9b-a3292ce54067/iso #格式化为ext3格式

mkdir /iso

xe sr-create name-label=myiso type =iso device-config:location=/iso

device-config:legacy_mode=true content-type =iso #创建ISO 存储

vgchange -a y #激活所有卷组

mount /dev//dev/VG_XenStorage-3aad96c1-a78c-022d-1e9b-a3292ce54067/iso /iso #挂载

3.使用Linux 系统NFS 或Windows 系统网络共享挂载ISO ,要在别的服务器上安装NFS 服务器或开启网络共享,最为复杂,不过一劳永逸,多台XenServer 可以共用网络挂载的ISO 存储,推荐此方式。 1 x e-mount -iso-sr http://www.haiyun.me:/path

XenServer 存储概述

发布时间:April 22, 2012 // 分类:虚拟化 // No Comments

存储库 (SR)

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

物理块设备 (PBD)

物理块设备代表物理服务器和连接的 SR 之间的接口。

虚拟磁盘映像 (VDI)

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

虚拟块设备 (VBD)

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

它们之间的联系可以可以用下图说明:

XenServer 下查找占用硬盘IO 较高的虚拟机

发布时间:April 12, 2012 // 分类:虚拟化 // No Comments

首先用iostat 查看各个磁盘读写情况,虚拟机磁盘是以dm-id 为名显示的。 1 i ostat 2 2 #取样两次,每次相隔2秒

查找tps 大于20的vm ,并按大小排序 1 2 iostat 2 2|grep ^dm-|awk -F "[ ]+|[-]" '{if($3>20){print $2"\t"$3}}'|sort -rnk 2 #第一列为磁盘ID ,第二列为当前tps

根据磁盘ID 查找相应的虚拟机 1 2 3 4 5 6 7 8 9 #!/bin/bash

#Created by http://www.haiyun.me

#根据iostat 结果ID 找出相应VM

#执行sh file.sh 编号

case $1 in

*)

id =`ls -l /dev/mapper/|awk '{if ($6=="'$*'"){print $NF}}'|awk -F-- '{print $NF}'`;xe vdi-list|grep -A 1 $id

;;

esac

XenServer由mac地址获取虚拟机名称

发布时间:April 12, 2012 // 分类:虚拟化 // No Comments

1.通过vif列表直接获取

1 x e vm-vif-list|grep -B

2 "mac"

2.通过vm uuid获取

1 v mid=`xe vif-list MAC=be:c1:46:fd:4e:b7|grep vm-uuid|awk'{print $4}'`;xe vm-list|grep $vmid -A 1

.

相关主题
文本预览
相关文档 最新文档