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