1、使用virt-install命令建立虛擬機
linux
virt-install命令既能夠交互運行,也能夠以自動的方式建立與部署虛擬機系統,配合kickstart技術能夠實現無人值守安裝虛擬機操做系統。該命令提供了不少選項,使用virt-install --help能夠查看選選項和幫助ubuntu
命令格式:緩存
virt-install [選項]安全
-h 查看幫助bash
--connect=CONNECT 鏈接非默認的hypervisor,默認爲qemu:///system網絡
-n name 新的虛擬機主機實例名稱架構
-r MEMORT 虛擬機內存設置dom
--arch=ARCH cpu架構ide
--machine=MACHINE 虛擬機模擬機類型,Xen或者KVM等。工具
--vcpus=VCPUS 虛擬主機CPU個數
-c CDROM 設置光盤鏡像或光盤設備路徑
-l LOCATION 指定安裝源路徑
--pxe 使用pxe協議啓動
--import 導入現有的虛擬機
-x EXTRA 附加的內核參數,如-x "ks=http://server/server.ks"
--os-type=Type 操做系統類型,如linux、windwos等
--disk=DISKOPTS 設置虛擬機磁盤,如--disk /dev/storage/path
-w NETWORK 設置虛擬機網絡,如-w bridge=br0
--noneworks 虛擬機不設置任何網絡接口
-m MAC 設置虛擬機MAC地址
--vnc 設置經過vnc查看虛擬機
--hvm 使用全虛擬化技術
--paravirt 使用半虛擬化技術
--soundhw MODEL 設置聲卡設備
--autostart 設置虛擬機爲開機啓動
官方幫助文檔案例以下:
1)安裝fedora 13,使用virtio 驅動的磁盤與網卡設備,建立8GB的存儲文件,使用CDROM安裝操做系統,使用VNC查看虛擬機界面
virt-install --connect qemu:///system --virt-type kvm --name demo --ram 500 --disk path=/var/lib/libvirt/images/demo.img,size=8 -graphics vnc --cdrom /dev/cdrom --os-variant fedora13
2)安裝Fedora9 ,使用LVM分區,虛擬機網絡設置爲從PXE啓動,使用vnc鏈接虛擬機界面:
virt-install --connect qemu:///system --name demo --ram 500 --disk path=/dev/HostVG/DemoVM --virt-type qemu --graphics vnc --os-variant fedora9
3)在真實的磁盤中安裝虛擬機,使用默認QEMU hypervisor,使用SDL鏈接虛擬機界面經過遠程初始化及安裝
virt-install --connect qemu:///system --name demo --disk path=/dev/hdc --network brige=eno1 --arch ppc64 --graphics sdl --location /linux/core/6/x86_64/os/
如下爲在本地安裝一臺ubuntu虛擬機示意,
virt-install \ \--connect qemu:///system #鏈接默認本機hypervisor \--virt-type kvm #虛擬化類型爲kvm \--vcpus=1 #vcpu爲1 \--name unbuntu16 #虛擬機名稱 \--ram 512 #內存大小 \--cdrom /var/lib/libvirt/images/ubuntu-16.04.5-server-amd64.iso #指定使用cdrom光驅啓動,指定鏡像路徑 \--disk path=/var/lib/libvirt/images/ubuuntu16.img,size=50,format=qcow2,bus=virtio #指定硬盤路徑,大小,格式爲qcow2,總線類型爲virtio \--network bridge=br0 #指定虛擬網絡類型爲網橋br0 \--os-type=linux #指定虛擬機操做系統類型爲linux
而後跳出安裝界面
而後使用virt-manger查看虛擬機硬件選項,與命令行配置一致
2、 virsh命令
virsh是很是優秀的hypervisor和虛擬主機的命令行管理工具,它是由libvirt-client軟件提供的命令,可使用該命令行工具替代圖形界面的virt-manager工具
語法 virsh[選項] 命令 [參數]
cd 更改當前目錄
connect 鏈接(從新鏈接)到 hypervisor
echo echo 參數
exit 退出這個非交互式終端
help 打印幫助
pwd 輸出當前目錄
quit 退出這個非交互式終端
經常使用命令:
list 列出正在運行的虛擬機列表
如下域其實就是domain,kvm中指虛擬機
autostart -自動開始一個域,配置虛擬機自啓,--disable表示禁用自啓動
connect - 鏈接(從新鏈接)到 hypervisor
dumpxml - XML 中的域信息,輸出特定虛擬機XML格式的配置文件
create - 從一個 XML 文件建立一個域,新虛擬機
define - 從一個 XML 文件定義(但不開始)一個域
destroy - 銷燬(中止)域
dominfo - 域信息
domid - 把一個域名或 UUID 轉換爲域 id
domstate - 域狀態
edit - 編輯某個域的 XML 配置
reboot - 從新啓動一個域
shutdown - 關閉一個域
destroy - 銷燬(中止)域
start - 開始一個(之前定義的)非活躍的域
save - 把一個域的狀態保存到一個文件
restore - 從一個存在一個文件中的狀態恢復一個域
screenshot - 提取當前域控制檯截圖並保存到文件中
suspend - 掛起一個域
resume - 從新恢復一個域
setmem - 改變內存的分配
setmaxmem - 改變最大內存限制值
setvcpus - 改變虛擬 CPU 個數
vcpuinfo - 詳細的域 vcpu 信息
attach-device - 從一個XML文件添加設備
net-create - 從一個 XML 文件建立一個網絡
net-dumpxml - 輸出XML格式的網絡信息
net-list - 列出網絡
net-start - 開始一個(之前定義的)不活躍的網絡
iface-define-使用XML文件定義主機網絡接口
iface-list - 物理主機接口列表
snapshot-create - 使用 XML 生成快照
snapshot-delete - 刪除域快照
snapshot-dumpxml - 爲域快照備份xml
snapshot-list - 爲域列出快照
1)查看當前正在運行的虛擬機列表,查看全部的虛擬機列表
2)設置虛擬機爲開機自啓
3)備份虛擬機配置文件,將配置文件保存爲ubuntu.xml
virsh dumpxml ubuntu16 > ubntu16.xml
4)查看虛擬機的基本信息
virsh dominfo 6
5)設定虛擬內存大小,最大內存以及vcpu個數,下次重啓生效
virsh setmaxmem ubuntu16 1048576 --config #單位爲kB --config爲下次啓動生效 virsh setmem ubuntu16 1048576 --config virsh setvcpus unbuntu16 2 --config
3、虛擬存儲
kvm存儲池是被libvirt所管理的文件、目錄或存儲設備,存儲池能夠位於本地,也能夠經過網絡共享,存儲池最終能夠被虛擬機所使用。默認libvirt使用基於目錄的存儲池設計,/var/lib/libvirt/images目錄就是默認的存儲池。本地存儲池能夠是本地的一個目錄、磁盤設備、物理分區或LVM卷,可是本地存儲池不適合於大規模產品部署,也不支持虛擬機遷移功能。網絡共享存儲池使用標準的網絡協議進行存儲設備的共享,它支持SAN,IP-SAN,NFS,GFS2等協議。在kvm虛擬化技術中,存儲池能夠包含多個存儲卷,對虛擬機而言,這些存儲卷都被是被爲物理硬件存儲設備。
3.1 建立基於目錄的虛擬存儲池與存儲卷
建立目錄
mkdir /var/lib/libvirt/test
修改文件安全相關屬性
chown root.root /var/lib/libvirt/test/ chmod 700 /var/lib/libvirt/test/
使用virsh命令建立存儲池,
virsh pool-define-as test --type dir --target /var/lib/libvirt/test/ #建立爲目錄類型的存儲池 virsh pool-build test #構建池 virsh pool-start test #激活 virsh pool-autostart test #自動激活 virsh pool-list
還有可使用xml定義的方式建立存儲池,首先建立一個名爲test的xml文檔
# cat test <pool type='dir'> #定義類型爲目錄 <name>test</name> #定義名稱爲test <source> </source> <target> <path>/var/lib/libvirt/test</path> #定義目錄 <permissions> <mode>0700</mode> <owner>-1</owner> <group>-1</group> </permissions> </target> </pool>
而後調用pool-create命令,加載xml文件
virsh pool-create test virsh pool-list
而後再建立存儲卷,格式爲qcow2,大小爲10G
virsh vol-create-as test vol-test.qcow2 10G --format qcow2 virsh vol-list test #查看池下的卷
而後爲虛擬機添加硬盤,將test存儲池中的vol-test.qcow2卷做爲硬盤添加到虛擬機ubuntu中
virsh attach-disk \--domain ubuntu16 #指定虛擬機 \--source /var/lib/libvirt/test/vol-test.qcow2 #指定卷的路徑 \--target vdb #指定將硬盤識別爲虛擬機的vdb \--targetbus virtio #總線協議 \--driver qemu #驅動類型 \--subdriver qcow2 #磁盤源的驅動類型 \--sourcetype block #磁盤源方式 file即文件設備,block爲塊設備 \--cache none #不用緩存 \--persistent #會讓此操做同時對運行的虛擬機以及虛擬機的xml文件都會生效 \--config #下次重啓生效
此時登錄虛擬機,能夠看到硬盤已經添加