kvm--virsh命令行下管理虚拟机
virsh 既有命令行模式,也有交互模式,在命令行直接輸入 virsh 就進(jìn)入交互模式, virsh 后面跟命令參數(shù),則是命令行模式;
(1)基礎(chǔ)操作 --- 命令行下管理虛擬機(jī)
virsh list?????????? 列出當(dāng)前宿主機(jī)上處于運(yùn)行狀態(tài)的虛擬機(jī)
virsh list --all??? 列出當(dāng)前宿主機(jī)上所有的虛擬機(jī)
virsh start vm1 (虛擬機(jī)name) 開啟某一臺(tái)虛擬機(jī)
virsh shutdown vm1?? (虛擬機(jī)name) 正常關(guān)閉一臺(tái)虛擬機(jī)
virsh destroy vm1????? 強(qiáng)制關(guān)閉某一臺(tái)虛擬機(jī)
virsh autostart vm1??? 開機(jī)自啟動(dòng)虛擬機(jī)vm1
virsh autostart? --disable vm1 關(guān)閉開機(jī)自啟動(dòng)
virsh edit vm1?? 編輯某個(gè)虛擬機(jī)的配置文件
virsh pool-list?? 列出存儲(chǔ)池
2)創(chuàng)建新磁盤?
qemu-img create -f qcow2(指定磁盤格式) -o size=9G(指定大小) /var/lib/libvirt/images/haha.qcow2(路徑和名稱)
/var/lib/libvirt/image/為磁盤鏡像的默認(rèn)路徑。
注意注定磁盤大小的時(shí)候不能有空格,否則報(bào)錯(cuò)
[root@localhost images]# qemu-img create -f qcow2 -o size =9G /var/lib/libvirt/images/haha.qcow2
qemu-img: Invalid image size specified! You may use k, M, G, T, P or E suffixes for
qemu-img: kilobytes, megabytes, gigabytes, terabytes, petabytes and exabytes.[root@localhost images]# qemu-img create -f qcow2 -o size=9G /var/lib/libvirt/images/haha.qcow2
Formatting '/var/lib/libvirt/images/haha.qcow2', fmt=qcow2 size=9663676416 encryption=off cluster_size=65536 lazy_refcounts=off
[root@localhost images]# qemu-img info haha.qcow2 ?
3)查看磁盤情況
qemu-img info 磁盤名
[root@localhost images]# qemu-img info /var/lib/libvirt/images/haha.qcow2
image: haha.qcow2
file format: qcow2
virtual size: 9.0G (9663676416 bytes)
disk size: 196K #實(shí)際占用磁盤196k,最高可用9G
cluster_size: 65536
Format specific information:compat: 1.1lazy refcounts: false 4)命令行下創(chuàng)建 && 管理虛擬機(jī)
Virt-install: 命令行下創(chuàng)建虛擬機(jī)的命令,不過在它后面需要跟上很多的參數(shù)
??? --name: 虛擬機(jī)的名字。
??? --disk Location: 磁盤映像的位置。
??? --graphics : 怎樣連接 VM ,通常是 SPICE 。
??? --vcpu : 虛擬 CPU 的數(shù)量。
??? --ram : 以兆字節(jié)計(jì)算的已分配內(nèi)存大小。
??? --location : 指定安裝源路徑
??? --network : 指定虛擬網(wǎng)絡(luò),通常是 virbr0 或者自己設(shè)定的 br0
?
例如:創(chuàng)建一個(gè)磁盤
路徑為/var/lib/libvirt/image/?
指定cpu內(nèi)存為1g
cpu數(shù)量為1
以spice方式連接vm
執(zhí)行虛擬網(wǎng)絡(luò)為自設(shè)網(wǎng)橋br0
virt-install --name=test --disk path=/var/lib/libvirt/image/test.qcow2 --ram=1024 --vcpus=1 --graphics spice --location=/export/download/software/iso/CentOS-7.3-x86_64-DVD.iso --network bridge=br0
注意磁盤路徑與磁盤安裝源路徑的區(qū)別。
由于使用virsh命令創(chuàng)建虛擬機(jī)同樣還需要在圖形化界面操作,所以用的不多,了解就行。
?
5)其余重要的一些virsh命令
virsh define? ?xx.xml? ? ? ? ? ? ? ? 從一個(gè) XML 文件定義、恢復(fù)(但不開始)一個(gè)域
virsh undefine? xx? ? ? ? ? ?刪除一個(gè)虛機(jī)域
?
KVM 通過virsh console連入虛擬機(jī)
?
定義:在宿主機(jī)上直接能夠連通創(chuàng)建的虛擬機(jī)并執(zhí)行操作,功能類似于ssh。
?前提:新安裝一臺(tái)虛擬機(jī)后,是無法通過virsh console 命令連入虛擬機(jī)中的,這時(shí)我們需要開啟虛擬機(jī)的console功能。
我們這里以centos7以上的版本做說明:
?
(1)在被連接的虛機(jī)里執(zhí)行
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0"
?
(2)重啟此機(jī)
[root@localhost ~]# reboot
?
3)在宿主機(jī)上執(zhí)行
[root@localhost ~]# virsh console vm5
連接到域 vm5
換碼符為 ^] #ctrl ] 退出1、一直hang在這個(gè)狀態(tài)無法連接上虛擬機(jī),這是因?yàn)樗拗鳈C(jī)通過ttyss0連接虛擬機(jī),但被連接主機(jī)沒有設(shè)置或者沒有設(shè)置成功。
2、或者grubby命令沒有下載,yum安裝后再次嘗試 3、VNC Viewer 遠(yuǎn)程管理kvm主機(jī)
前提是宿主機(jī)內(nèi)的虛擬機(jī)狀態(tài)為開啟
(1)在window中安裝VNC Viewer 軟件,一直點(diǎn)下一步就行。
?
?
?2 )輸入宿主機(jī)的ip地址。
點(diǎn)擊Continue,即可連接里面的虛機(jī)
?
?
五、KVM虛擬化透?jìng)?/span>
?
KVM 虛擬化需要處理器對(duì)虛擬化技術(shù)的支持,當(dāng)我們需要進(jìn)行虛擬機(jī)嵌套虛擬機(jī)時(shí),我們需要讓虛擬機(jī)中處理器對(duì) VT 功能的支持達(dá)到透?jìng)鞯男Ч?/strong>。
nested 虛擬機(jī)嵌套( kvm on kvm ):nested 技術(shù),簡單的說,就是在虛擬機(jī)上跑虛擬機(jī)。
KVM 虛擬機(jī)嵌套和 VMWare 原理不同, VMWare第一層是用的硬件虛擬化技術(shù),第二層就是完全軟件模擬出來的,所以 VMWare 只能做兩層嵌套。 KVM 是將物理 CPU 的特性全部傳給虛擬機(jī),所有理論上可以嵌套 N 多層。
1、查看一層客戶端是否支持 VT
grep vmx(svm) /proc/cpuinfo
如果查詢未果,證明一層 KVM 的虛擬機(jī),并未將宿主機(jī)處理器的 VT 功能成功透?jìng)鳌?/span>
因此我們需要透?jìng)鳌?/span>
?
2、在物理服務(wù)器上(宿主機(jī))為嵌套虛擬機(jī)做準(zhǔn)備 --- CPU 虛擬化透?jìng)?/span>
注意查看你的虛擬機(jī)架構(gòu)支持的是amd還是intel
[root@localhost ~]# cat /etc/modprobe.d/kvm-nested.conf
options kvm_amd nested=1
?
3、在宿主機(jī)啟用 kvm_amd 模塊的嵌套虛擬化功能,并且使透?jìng)饔谰糜行?/span>
(2)重新加載 kvm 模塊
# modprobe -r kvm_amd? ? ? -r參數(shù):remove掉kvm_amd模塊
# modprobe kvm_amd? ? ? ? ? ? 加載kvm_amd模塊
?
4、驗(yàn)證是否加載成功
#cat /sys/module/kvm_intel/parameters/nested
1或者y證明加載成功。
0和N或者沒有返回值證明沒加載成功。
重新加載modprobe模塊或者查看架構(gòu)是支持intel還是amd來稍微更改下模塊和目錄。
[root@localhost ~]# cat /sys/module/kvm_amd/parameters/nested
1
?
5、編輯需要做虛擬化透?jìng)鞯奶摂M機(jī)的配置文件
更改下面綠綠的一行即可。
host-passthrough 直接將物理 CPU 暴露給虛擬機(jī)使用,在虛擬機(jī)上完全可以看到的就是物理 CPU的型號(hào)(我們前面介紹過kvm透?jìng)骶褪菍⑺拗鳈C(jī)的cpu特性全部傳給被透主機(jī))
root@localhost ~]# virsh edit vm4
<domain type='kvm'><name>vm4</name><uuid>98c5d257-6b75-493b-91db-66589b582733</uuid><memory unit='KiB'>1048576</memory><currentMemory unit='KiB'>1048576</currentMemory><vcpu placement='static'>1</vcpu><os><type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type></os><features><acpi/><apic/></features><cpu mode='host-passthrough'/> #刪除下面兩行<clock offset='utc'><timer name='rtc' tickpolicy='catchup'/> 6、進(jìn)入透?jìng)魈摂M機(jī)中查看cpu是否透?jìng)鞒晒?/span>
[root@localhost ~]# lsmod | grep kvm
kvm_amd 69849 0
kvm 566340 1 kvm_amd
irqbypass 13503 1 kvm ?
7、在被透?jìng)魈摂M機(jī)中查看cpu是否支持虛擬化
次數(shù)大于0證明透?jìng)鞒晒?#xff0c;可以開始虛擬機(jī)嵌套了。
svm是支持amd架構(gòu)
vmx支持intel架構(gòu)
[root@localhost ~]# egrep svm /proc/cpuinfo | wc -l
1 ?
轉(zhuǎn)載于:https://www.cnblogs.com/xiaoxiaotiejiang/p/11082756.html
總結(jié)
以上是生活随笔為你收集整理的kvm--virsh命令行下管理虚拟机的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 找个05年左右的恐怖电影,女主是个奶油金
- 下一篇: 7、vue中将token存到cookie