LInux.KVM.XEN

weixin_33912445發表於2017-04-28

1,建立虛擬機器

複製程式碼程式碼如下:

[root@localhost ~]# virt-install --name=centos1 \ #生成一個虛擬機器
--ram 1024 --vcpus=1 \
--disk path=/root/centos1.img,size=10 \
--accelerate --cdrom /root/CentOS-6.5-x86_64-bin-DVD1.iso \
--graphics vnc,port=5921 --network bridge=br0
2,virsh的其他操作

複製程式碼程式碼如下:

[root@localhost /]# virsh start centos1 #啟動虛擬機器

[root@localhost /]# virt-viewer centos1 #如果有圖形介面的話,可以進入虛擬機器的介面

[root@localhost ~]# virsh shutdown centos1 #關閉虛擬機器

[root@localhost /]# virsh reboot centos1 #重啟虛擬機器

[root@localhost /]# virsh suspend centos1 #暫停虛擬機器

[root@localhost /]# virsh resume centos1 #恢復虛擬機器

[root@localhost /]# virsh autostart centos1 #自動載入虛擬機器

virsh引數如下:
autostart #自動載入指定的一個虛擬機器
connect #重新連線到hypervisor
console #連線到客戶會話
create #從一個SML檔案建立一個虛擬機器
start #開始一個非活躍的虛擬機器
destroy #刪除一個虛擬機器
define #從一個XML檔案定義一個虛擬機器
domid #把一個虛擬機器名或UUID轉換為ID
domuuid #把一個鬱悶或ID轉換為UUID
dominfo #檢視虛擬機器資訊
domstate #檢視虛擬機器狀態
domblkstat #獲取虛擬機器裝置快狀態
domifstat #獲取虛擬機器網路介面狀態
dumpxml #XML中的虛擬機器資訊
edit #編輯某個虛擬機器的XML檔案
list #列出虛擬機器
migrate #將虛擬機器遷移到另一臺主機
quit #退出非互動式終端
reboot #重新啟動一個虛擬機器
resume #重新恢復一個虛擬機器
save #把一個虛擬機器的狀態儲存到一個檔案
dump #把一個虛擬機器的核心dump到一個檔案中以方便分析
shutdown #關閉一個虛擬機器
setmem #改變記憶體的分配
setmaxmem #改變最大記憶體限制值
suspend #掛起一個虛擬機器
vcpuinfo #虛擬機器的cpu資訊
version #顯示virsh版本

3,virt-clone,如果我們要建幾個一樣的虛擬機器,這個命令,非常有用

複製程式碼程式碼如下:

virt-clone --connect=qemu:///system -o centos1 -n centos3 -f /root/centos3.img #克隆centos1

正在克隆 centos1.img | 10.0 GB 00:07

Clone 'centos3' created successfully.
libguestfs-tools是虛擬機器一個管理包,很有用的工具
[root@localhost ~]# yum -y install libguestfs-tools #安裝工具包
4,未登入的情況下,檢視映象目錄

複製程式碼程式碼如下:

[root@localhost ~]# virt-ls centos.img /home #檢視centos.img映象檔案中/home目錄
tank
5,未登入的情況下,將映象檔案中的檔案copy出來

複製程式碼程式碼如下:

[root@localhost ~]# virsh list --all #檢視所有的虛擬機器名稱
Id 名稱 狀態


1 centos1 running
2 centos6.5 running

  • arch 關閉
  • arch1 關閉
  • arch2 關閉
  • arch3 關閉
  • arch5 關閉
  • centos3 關閉
  • ubuntu 關閉
  • ubuntu1 關閉
    [root@localhost ~]# virt-copy-out -d centos1 /etc/passwd /tmp #將centos1中的檔案copy到tmp下面

6,檢視虛擬機器的分割槽情況

複製程式碼程式碼如下:

[root@localhost ~]# virt-filesystems -d centos1
/dev/sda1
/dev/VolGroup/lv_root

[root@localhost ~]# virt-list-partitions /root/centos.img
/dev/sda1
/dev/sda2

[root@localhost ~]# virt-df centos.img
Filesystem 1K-blocks Used Available Use%
centos.img:/dev/sda1 495844 34510 435734 7%
centos.img:/dev/VolGroup/lv_root 8780808 2842056 5492700 33%
7,mount虛擬機器

複製程式碼程式碼如下:

[root@localhost ~]# guestmount -a /root/centos.img -m /dev/VolGroup/lv_root --rw /mnt/usb
[root@localhost ~]# cd /mnt/usb/
[root@localhost usb]# ls
bin dev home lib64 media mnt opt root selinux sys usr
boot etc lib lost+found misc net proc sbin srv tmp var
8,修改kvm中虛擬機器的記憶體大小

複製程式碼程式碼如下:

[root@nfs ~]# virsh edit vm01 ##注意vi直接編輯不生效

vm01
df8604c1-dcf3-fa98-420f-6eea7b39c395
1048576 ###本來開始設定為1G,現在這個單位是k
1048576

修改為1.5G

複製程式碼程式碼如下:

[root@nfs ~]# expr 1536 * 1024
1572864</p> <p>[root@nfs ~]# virsh list
Id Name State


1 win2003 running
3 vm01 running</p> <p>[root@nfs ~]# virsh shutdown vm01 ###修改配置檔案後需要重新啟動下虛擬機器,先關閉它
Domain vm01 is being shutdown</p> <p>[root@nfs ~]# virsh list ###確認已經被關閉
Id Name State


1 win2003 running</p> <p>[root@nfs ~]# virsh start vm01 ###啟動它
Domain vm01 started</p> <p>[root@nfs ~]# virsh list
Id Name State


1 win2003 running
3 vm01 running

到機器上檢視記憶體大小:

複製程式碼程式碼如下:

[root@vm01 liuxiaojie]# free -m
total used free shared buffers cached
Mem: 1505 618 886 0 29 361
-/+ buffers/cache: 227 1277
Swap: 2000 0 2000
9,刪除一個虛擬機器(vm01)

複製程式碼程式碼如下:

[root@nfs qemu]# virsh undefine vm01
[root@nfs qemu]# rm -f /home/data/vm01.img
10,刪除一個域

複製程式碼程式碼如下:

[root@nfs web01]# virsh list --all

Id Name State

1 web01 running ##處於工作狀態

  • myweb01 shut off
  • myweb03 shut off
  • mywin2003 shut off
  • myxp shut off
  • xp shut off

複製程式碼程式碼如下:

[root@nfs web01]# virsh undefine web01 ##處於工作狀態也能刪除!

Domain web01 has been undefined

複製程式碼程式碼如下:

[root@nfs web01]# virsh list

Id Name State

1 web01 running

複製程式碼程式碼如下:

[root@nfs web01]# virsh destroy web01

Domain web01 destroyed

複製程式碼程式碼如下:

[root@nfs web01]# virsh list --all ##web01已經沒有了!

Id Name State

  • myweb01 shut off
  • myweb03 shut off
  • mywin2003 shut off
  • myxp shut off
  • xp shut off

複製程式碼程式碼如下:

[root@nfs web01]# virsh define web01

error: Failed to open file 'web01': No such file or directory