開始安裝xen虛擬機(jī)
檢查環(huán)境:
uname -r
brctl show
ls /etc/init.d/xen*
安裝:
文本方式
Install Guest(虛擬機(jī)):
virt-install --name=vm1 --ram=256 --file=/var/ftp/xen/vm1.img --nographics --location=ftp://192.168.1.254/RHEL5U5/ --file-size=5 --nonsparse --vcpus=4 --paravirt --bridge=xenbr0 --vnc --vncport=5910 --debug
虛擬機(jī)名稱 內(nèi)存大小 映像文件 半虛擬化只支持三種網(wǎng)絡(luò)安裝 (全虛擬化支持cdrom/iso鏡像) 映像文件最大大小是5G CPU的個數(shù) 半虛擬化 橋接所使用的交換機(jī)設(shè)備 指定VNC的監(jiān)聽端口 詳細(xì)輸出模式
--nonsparse 不使用稀疏文件。 占總大小5G,如果實際空間沒有達(dá)到5G,則只占用實際大小的硬盤空間。
==>
virt-install --help
virt-install --name=vm1 --ram=512 --file=/var/ftp/pg/vm1.img --location=ftp://192.168.0.253/RHEL5U5/ --file-size=5 --vcpus=4 --paravirt --bridge=xenbr1 --vnc --debug
--location nfs:192.168.1.254:/disk1/rhel5u5
--location http://主機(jī)的IP/實際的/完整目錄
--location ftp://主機(jī)的IP/實際的完整目錄
[root@pgserver /]# virt-install --name vm2 --ram=256 --vcpus 4 --location=ftp://192.168.1.254/RHEL5U5 --file=/disk1/xen/vm2.img --file-size=5 --bridge=xenbr0 --vnc --vncport=5920 --debug
二, 04 1月 2011 15:18:52 DEBUG Requesting libvirt URI default
二, 04 1月 2011 15:18:52 DEBUG Received libvirt URI 'xen:///'
二, 04 1月 2011 15:18:52 DEBUG Requesting virt method '默認(rèn)'
二, 04 1月 2011 15:18:52 DEBUG Received virt method 'xen'
二, 04 1月 2011 15:18:52 DEBUG Hypervisor name is 'xen'
二, 04 1月 2011 15:18:52 DEBUG DistroInstaller location is a network source.
圖形方式
需要安裝virt-manager軟件包
執(zhí)行命令]# virt-manager ----- 新建
在安裝過程中,如果關(guān)掉了窗口,實際不影響實際安裝,此時,直接virt-vncviewer vm1 就可以再打開窗口。
virt-vncviewer --help 注意:只能一個遠(yuǎn)程方式查看,第二個遠(yuǎn)程用此命令是看不到輸出界面的。
維護(hù)管理:(xm命令在EL5中還能用,但是EL6中沒有了,改為virsh命令)
啟動:
xm create vm1
停:
刪除:
/tmp/vm1.img
/etc/xen/vm1
virsh --help
[root@pgserver scripts]# virsh help
命令:
help 打印幫助
attach-device 從一個XML文件附加裝置
attach-disk 附加磁盤設(shè)備
attach-interface 獲得網(wǎng)絡(luò)界面
autostart 自動開始一個域
capabilities 性能
connect 連接(重新連接)到 hypervisor
console 連接到客戶會話
create 從一個 XML 文件創(chuàng)建一個域
start 開始一個(以前定義的)非活躍的域
destroy 刪除一個域
detach-device 從一個 XML 文件分離設(shè)備
detach-disk 分離磁盤設(shè)備
detach-interface 分離網(wǎng)絡(luò)界面
define 從一個 XML 文件定義(但不開始)一個域
domid 把一個域名或 UUID 轉(zhuǎn)換為域 id
domuuid 把一個域名或 id 轉(zhuǎn)換為域 UUID
dominfo 域信息
domname 將域 id 或 UUID 轉(zhuǎn)換為域名
domstate 域狀態(tài)
domblkstat 獲得域設(shè)備塊狀態(tài)
domifstat 獲得域網(wǎng)絡(luò)接口狀態(tài)
dumpxml XML 中的域信息
edit 編輯某個域的 XML 配置
find-storage-pool-sources 發(fā)現(xiàn)潛在存儲池源
find-storage-pool-sources-as 找到潛在存儲池源
freecell NUMA可用內(nèi)存
hostname 打印管理程序主機(jī)名
list 列出域
migrate 將域遷移到另一個主機(jī)中
net-autostart 自動開始網(wǎng)絡(luò)
net-create 從一個 XML 文件創(chuàng)建一個網(wǎng)絡(luò)
net-define 從一個 XML 文件定義(但不開始)一個網(wǎng)絡(luò)
net-destroy 刪除一個網(wǎng)絡(luò)
net-dumpxml XML 中的網(wǎng)絡(luò)信息
net-edit 為網(wǎng)絡(luò)編輯 XML 配置
net-list 列出網(wǎng)絡(luò)
net-name 把一個網(wǎng)絡(luò)UUID 轉(zhuǎn)換為網(wǎng)絡(luò)名
net-start 開始一個(以前定義的)不活躍的網(wǎng)絡(luò)
net-undefine 取消定義一個非活躍的網(wǎng)絡(luò)
net-uuid 把一個網(wǎng)絡(luò)名轉(zhuǎn)換為網(wǎng)絡(luò)UUID
nodeinfo 節(jié)點信息
nodedev-list 這臺主機(jī)中中的枚舉設(shè)備
nodedev-dumpxml XML 中的節(jié)點設(shè)備詳情
nodedev-dettach 分離節(jié)點設(shè)備及其設(shè)備驅(qū)動程序
nodedev-reattach 重新附加節(jié)點設(shè)備設(shè)備機(jī)器設(shè)備驅(qū)動程序
nodedev-reset 重置節(jié)點設(shè)備
nodedev-create create a device defined by an XML file on the node
nodedev-destroy destroy a device on the node
pool-autostart 自動啟動某個池
pool-build 建立池
pool-create 從一個 XML 文件中創(chuàng)建一個池
pool-create-as 從一組變量中創(chuàng)建一個池
pool-define 在一個 XML 文件中定義(但不啟動)一個池
pool-define-as 在一組變量中定義池
pool-destroy 銷毀池
pool-delete 刪除池
pool-dumpxml XML 中的池信息
pool-edit 為存儲池編輯 XML 配置
pool-info 存儲池信息
pool-list 列出池
pool-name 將池 UUID 轉(zhuǎn)換為池名稱
pool-refresh 刷新池
pool-start 啟動一個(以前定義的)非活躍的池
pool-undefine 取消定義一個不活躍的池
pool-uuid 把一個池名稱轉(zhuǎn)換為池 UUID
quit 退出這個非交互式終端
reboot 重新啟動一個域
restore 從一個存在一個文件中的狀態(tài)恢復(fù)一個域
resume 重新恢復(fù)一個域
save 把一個域的狀態(tài)保存到一個文件
schedinfo 顯示/設(shè)置日程安排變量
dump 把一個域的內(nèi)核 dump 到一個文件中以方便分析
shutdown 關(guān)閉一個域
setmem 改變內(nèi)存的分配
setmaxmem 改變最大內(nèi)存限制值
setvcpus 改變虛擬 CPU 的號
suspend 掛起一個域
ttyconsole tty 控制臺
undefine 取消定義一個非活躍的域
uri 打印管理程序典型的URI
vol-create 從一個 XML 文件創(chuàng)建一個卷
vol-create-as 從一組變量中創(chuàng)建卷
vol-delete 刪除卷
vol-dumpxml XML 中的卷信息
vol-info 存儲卷信息
vol-list 列出卷
vol-path 將卷 UUID 轉(zhuǎn)換為卷路徑
vol-name 將卷 UUID 轉(zhuǎn)換為卷名稱
vol-key 將卷 UUID 轉(zhuǎn)換為卷密鑰
vcpuinfo 域 vcpu 的信息
vcpupin 控制域 vcpu affinity
version 顯示版本
vncdisplay vnc 顯示
start 開始
[root@pgserver scripts]# virsh start vm1
list 列出域
[root@pgserver scripts]# virsh list
Id 名稱 狀態(tài)
----------------------------------
0 Domain-0 running
2 pgsys1 閑置
reboot 正常重新啟動一個域(虛擬機(jī))
[root@pgserver scripts]# virsh reboot vm1
shutdown 正常關(guān)閉一個域(虛擬機(jī))
[root@pgserver scripts]# virsh shutdown vm1
destroy 強(qiáng)制立即停止一個域(虛擬機(jī))
[root@pgserver scripts]# virsh destroy vm1
save 把一個域的狀態(tài)保存到一個文件 (掛起)
restore 從一個存在一個文件中的狀態(tài)恢復(fù)一個域 (恢復(fù))
console
顯示虛擬機(jī)屏幕:
virt-viewer pgsys1
克隆虛擬機(jī): (克隆完要改IP/NETWORK信息)
virt-clone -o vm1 -n vm5 -f /var/ftp/xen/vm5.img -d
先來克隆
virt-clone -o vm1 -n vm5 -f /var/ftp/xen/vm5.img -d
克隆vm1命名為vm5,新生成的vm5的映像文件是/var/ftp/xen/vm5.img,-d顯示過程
[root@pgserver xen]# virt-clone -o pgsys1 -n pgsys2 -f /disk1/xen/pgsys2.img -d --nonsparse
virt-install --nographics -n qingvm05 -r 8129 -f /a8root/xen/qing/centos5-3.img -l http://192.168.200.57/iso
xen ks安裝方法: 1.生成一個img文件 dd if=/dev/zero of=cwm_vm2.img bs=1024k count=8000 2.編輯ks文件
[root@gw2 install]# cat ks_64_vm_org.cfg # Kickstart file automatically generated by anaconda.
install url --url http://192.168.200.57/iso lang en_US.UTF-8 network --device eth0 --bootproto static --ip 192.168.200.74 --netmask 255.255.254.0 --gateway 192.168.200.2 --nameserver 202.106.0.20 --hostname vm_org authconfig --enableshadow --enablemd5 selinux --enforcing timezone --utc America/New_York bootloader --location=mbr --driveorder=xvda --append="console=xvc0" # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work # Partiton clearpart --linux --drives=xvda part /boot --size 101 --ondisk=xvda part swap --size 1000 --ondisk=xvda part pv.01 --size 5001 --grow --ondisk=xvda volgroup rootvg pv.01 logvol / --vgname=rootvg --size=1001 --grow --name=rootvol
rootpw --iscrypted $1$MqJdtS0W$tjx0YhdUkNVwaZm1grhTU.
# SELinux configuration selinux --disabled # Do not configure the X Window System skipx # System timezone timezone Asia/Shanghai # Install OS instead of upgrade install services --disabled=acpid,apmd,bluetooth,cpuspeed,cups,fristboot,gpm,haldaemon,hidd,mdmonitor,mcstrans,ip6tables,netfs,messagebus,nfslock,pcscd,portmap,xfs,readahead_early,restorecond,rpcgssd,rpcidmapd,sendmail %packages @development-tools ntp lynx elinks mc vim-minimal iproute iptraf gcc gcc-c++ lrzsz sysstat openssl-devel # INSTALL SNMP net-snmp net-snmp-utils net-snmp-perl net-snmp-libs #squid #kernel-PAE #kernel-PAE-devel #sys_config_zhou compat-libstdc++-33
%pre #!/bin/sh echo " Welcome to my kickstart" %post (echo -en "# ntp sync time\n01 * * * * root /usr/sbin/ntpdate clock. > /dev/null; hwclock --systohc" >> /etc/crontab ) 1>/root/post-sc.log 2>&1
#==== CHANGE YUM.CONF ===== rpm -Uhv http://apt./redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm rpm -Uvh http://rpms./enterprise/remi-release-5.rpm rpm -Uvh http://download.fedora./pub/epel/5/x86_64/epel-release-5-4.noarch.rpm mkdir -p /a8root/soft/yumcache perl -p -i -e 's/cachedir\=\/var\/cache\/yum/cachedir=\/a8root\/soft\/yumcache/g' /etc/yum.conf perl -p -i -e 's/keepcache\=0/keepcache=1/g' /etc/yum.conf
# install tools yum --disablerepo=* --enablerepo=rpmforge -y install nload rpm -Uvh http://download.fedora./pub/epel/5/x86_64/agedu-0-1.r8768.el5.x86_64.rpm
#==== CHANGE ULIMIT ==== echo -en "* soft nofile 32767\n" >> /etc/security/limits.conf echo -en "* hard nofile 65535\n" >> /etc/security/limits.conf
#==== UPDATE SSHD ==== yum -y update "openssh*" perl -p -i -e 's/^#Port(\s+)22/Port 2222/g' /etc/ssh/sshd_config perl -p -i -e 's/--dport 22 -j ACCEPT$/--dport 2222 -j ACCEPT/g' /etc/sysconfig/iptables
3. virt-install --nographics -n cwm_vm3 -r 512 -f /a8root/xen/cwm_vm3.img -l http://192.168.200.57/iso -x "ks=http://192.168.200.57/ks/install/ks_64_vm_org.cfg ip=192.168.200.55 netmask=255.255.254.0 gateway=192.168.200.2 "
為虛擬機(jī)添加硬盤 擴(kuò)容有兩種方案:一、給虛擬機(jī)再加一個img文件;二、給centos.5-3.x86.img擴(kuò)容 方案一比較簡單,我就不細(xì)說了。下面說下第二種方案。 1、停止正在運(yùn)行的虛擬機(jī)。 2、為centos.5-3.x86.img增容。 # dd if=/dev/zero bs=1024k count=1024 >> centos.5-3.x86.img 注意紅色的部分,是雙箭頭“>>”,而不是單箭頭“>”,否則的話,你將會得到一個1G大小的空文件 3、強(qiáng)制檢查 #e2fsck -f centos.5-3.x86.img 4、改變虛擬機(jī)文件系統(tǒng)的大小 # resize2fs centos.5-3.x86.img
5、重新啟動虛擬機(jī),就可以看到根分區(qū)多了1G 或 dd if=/dev/zero of=vm01.img bs=1 count=1 seek=20G conv=notrunc e2fsck -f vm01.img -y resize2fs -p vm01.img 另一種方法: You need to do something like # Create new empty disk-image dd if=/dev/zero of=disk-image count=10240 # set up a loop-device for it losetup /dev/loop2 disk-image # initialize that loop-device for LVM pvcreate /dev/loop2 # Create a VG on it vgcreate Test /dev/loop2 Now you can create Logical Volumes on that VG, e.g.: # Create a logical volume lvcreate 4M MyLV Test # Create a filesystem on it mke2fs /dev/Test/MyLV # mount the filesystem mkdir MyLV mount /dev/Test/MyLV MyLV And if you want to remove everything umount MyLV rmdir MyLV lvremove /dev/Test/MyLV vgremove Test losetup -d /dev/loop2 rm disk-image Xen環(huán)境下為DomU在線添加磁盤空間設(shè)備 Xen環(huán)境內(nèi),可以為運(yùn)行中的DomU,動態(tài)添加磁盤設(shè)備。 以下為系統(tǒng)為RHEL5.2的系統(tǒng)在線添加磁盤的方法: 在Dom0端建立新的邏輯卷: # lvcreate vg0 -n xen_rh01 -L 15G Logical volume "xen_rh01" created 為名稱為“rh501”的虛擬機(jī)添加設(shè)備文件為xvdb: # xm block-attach rh501 phy:/dev/vg0/xen_rh01 /dev/xvdb w DomU的終端出現(xiàn)下列信息: xvdb: unknown partition table 用下列命令可以動態(tài)刪除設(shè)備文件:
確認(rèn)設(shè)備的ID: # xm block-list rh501 Vdev BE handle state evt-ch ring-ref BE-path 51712 0 0 4 9 8 /local/domain/0/backend/vbd/3/51712 51728 0 0 4 12 330 /local/domain/0/backend/vbd/3/51728 * 上述命令行執(zhí)行結(jié)果的最后一行的最后的五位數(shù)為新添加的磁盤設(shè)備 刪除設(shè)備: # xm block-detach rh501 51728 (Usage: xm block-detach [-f|--force]) 根據(jù)需要可以用 -f (強(qiáng)制執(zhí)行)選項
1.增加內(nèi)存
只要修改虛擬機(jī)的配置文件就可以了
[root@vmxen vm]# cat /etc/xen/vm4 name = "vm4" uuid = "705ae6ad-3ab2-5447-8e00-eeee939e4a2c" maxmem = 256 memory = 256 vcpus = 1 bootloader = "/usr/bin/pygrub" on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" disk = [ "tap:aio:/vm/vm4.img,xvda,w","tap:aio:/vm/vm4hd2.img,xvdb,w" ] vif = [ "mac=00:16:36:48:25:65,bridge=xenbr0,script=vif-bridge" ] 注意:修改虛擬機(jī)內(nèi)存前需要把剩下的所有內(nèi)存回收,分配給domain-0 ,否則會出現(xiàn)內(nèi)存與實際內(nèi)存不符的情況。 命令: xm list xm mem-set Domain-0 6144(實際剩余內(nèi)存)
vi /etc/xen/hostname maxmem = 2048 memory = 2048 2.增加硬盤 首先增加一個img文件作為虛擬機(jī)的新硬盤, dd if=/dev/zero of=/vm/vm4hd2.img bs=1M count=2048 然后修改虛擬機(jī)配置文件 ,增加xvdb的新磁盤。 disk = [ "tap:aio:/vm/vm4.img,xvda,w","tap:aio:/vm/vm4hd2.img,xvdb,w" ] 這樣,重啟vm后輸入fdisk -lh就可以看到第二塊硬盤了。 注意:比較好的方法是建虛擬機(jī)時就建兩塊硬盤,xvda用來裝系統(tǒng),xvdb用來存放數(shù)據(jù),這樣在硬盤空間不足時可以再增加一塊硬盤或者擴(kuò)充xvdb的容量,對系統(tǒng)的影響比較小。 比如:xm1 的xvda為8G裝系統(tǒng),xvdb 32G存放數(shù)據(jù)。 3.新建虛擬機(jī) 只要拷貝xen vm的img鏡像文件和配置文件,并修改配置文件中的鏡像路徑和虛擬機(jī)名稱就可以了。 注意要修改虛擬機(jī)的mac地址,要不然會出現(xiàn)沖突。 4.讓虛擬機(jī)隨宿主機(jī)一起啟動。 只要在/etc/xen/auto建立一個xen vm配置文件的鏈接就可以了。 比如: ln -s /etc/xen/vm1 /etc/xen/auto/vm1.
|