首頁 > 軟體

Linux基礎教學學習筆記16——使用虛擬化系統KVM

2020-06-16 18:04:21

Linux基礎教學學習筆記16——使用虛擬化系統KVM

1、虛擬化平台
開源: Openstack,Ovint

收費:RHEV

2、虛擬機器KVM

KVM:kernal virtual machine基於核心的虛擬機器,核心的一個模組;

使用者空間管理工具:libvirt 介面,

要設定KVM,必須在Bios開啟虛擬化功能,前提是CPU支援虛擬化;
[root@linuxidc ~]# grep vmx /proc/cpuinfo 
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase smep

3、安裝KVM

設定好Yum源後,安裝虛擬化主機組包:

yum group install 'Virtu*' -y

4、在KVM中建立虛擬機器
    開啟虛擬機器控制終端:
[root@linuxidc ~]# virt-manager &

建立虛擬機器


KVM的儲存池在路徑:/var/lib/libvirt/images

編輯虛擬機器的網路型別:
開啟編輯連線

新建一個虛擬網路型別:



    網路型別:

    isolated virtual network:獨立的虛擬的網路,相當於vm workstation的vmnet0,vmnet1.。。。

    forwarding to physical network: mode如果選擇是NAT,相當於vm workstation的NAT模式,mode選擇routed相當於橋接。

Virsh命令列管理KVM的虛擬機器:

virsh [options]... [<command_string>]
virsh [options]... <command> [args...]

    常用命令:

    list:

    shutdown:

    destroy:

    reboot:

    resume:

    start:

    snapshot-create:建立快照:
    undefine: 徹底從KVM刪除虛擬機器;

    console:控制台進入虛擬機器;

虛擬機器的組態檔目錄:cd /etc/libvirt/qemu

五、vir-install命令列安裝虛擬機器:

首先檢視KVM支援的系統平台:
[root@linuxidc ~]# virt-install --os-variant=list
win7                : Microsoft Windows 7
vista                : Microsoft Windows Vista
winxp64              : Microsoft Windows XP (x86_64)
winxp                : Microsoft Windows XP
win2k                : Microsoft Windows 2000
win2k8              : Microsoft Windows Server 2008
win2k3              : Microsoft Windows Server 2003
openbsd4            : OpenBSD 4.x
freebsd8            : FreeBSD 8.x
freebsd7            : FreeBSD 7.x
freebsd6            : FreeBSD 6.x

KVM預設的儲存池位置為:/var/lib/libvirt/images,如果需要將虛擬磁碟安裝在其他位置,則需要修改上下文許可權:

        semanage fcontext -a -t virt_image_t "new location"
        restorecon -R "new location"

        使用命令列安裝虛擬機器:

[root@linuxidc Desktop]# virt-install -n rhel7 -r 512 --vcpus=1 --location=/root/rhel-server-7.0-x86_64-dvd.iso --controller=usb --os-variant=rhel7 --disk=/var/lib/libvirt/images/mydisk1,size=3

列出活動的虛擬機器:

[root@linuxidc ~]# virsh list
 Id    Name                          State
----------------------------------------------------
 7    rhel7                          running

檢視虛擬機器的更多資訊: 
[root@linuxidc ~]# virsh domainfo rhel7
error: unknown command: 'domainfo'
[root@linuxidc ~]# virsh dominfo rhel7
Id:            7
Name:          rhel7
UUID:          7c096b6b-1d56-4405-86e4-509f612b13aa
OS Type:        hvm
State:          running
CPU(s):        1
CPU time:      107.3s
Max memory:    524288 KiB
Used memory:    524288 KiB
Persistent:    yes
Autostart:      disable
Managed save:  no
Security model: selinux
Security DOI:  0
Security label: system_u:system_r:svirt_t:s0:c608,c777 (enforcing)

停止執行的虛擬機器:

[root@linuxidc ~]# virsh stop rhel7
[root@linuxidc ~]# #virsh shutdown rhel7
[root@linuxidc ~]# #virsh destroy rhel7

開啟一個虛擬機器:
[root@linuxidc ~]# #virsh start rhel7

刪除一個虛擬機器:

[root@linuxidc ~]# #virsh destroy rhel7
[root@linuxidc ~]# #virsh undefine rhel7

[root@linuxidc ~]# #rm -rf /var/lib/libvirt/images/mydisk1.img
[root@linuxidc ~]# #virsh pool-refresh default

KVM主機從console口進入虛擬機器:

首先,修改虛擬機器的核心:
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0"

重新啟動虛擬機器,從KVM host主機console虛擬機器:

[root@linuxidc ~]# virsh console rhel7

[root@linuxidc ~]# virsh console rhel7
Connected to domain rhel7
Escape character is ^]
Red Hat Enterprise Linux Server 7.0 (Maipo)
Kernel 3.10.0-123.el7.x86_64 on an x86_64
localhost login: root
Password:

    緊急情況的處理,當KVM主機失去了與虛擬主機的所有連線(/etc/fstab,ssh設定等),並且也沒有設定任何console連線,那麼可以按照以下的辦法處理:
    首先在KVM主機上關閉虛擬機器:

virsh destroy rhel7    查詢儲存檔案位置:

[root@linuxidc ~]# virsh dumpxml rhel7 | grep "source file="
      <source file='/var/lib/libvirt/images/mydisk1'/>

將虛擬機器的儲存檔案對映到KVM主機環境:

kpartx -av /var/lib/libvirt/images/mydisk1.img

掛載boot到KVM的mnt目錄:
mount /dev/mapper/loop0p1 /mnt

然後編輯/mnt/boot/grub2/grub.cfg檔案,在包含有/vmlinuz的那行新增console=ttyS0

解除安裝mnt目錄:

umount /mnt

解除對映:

kpartx -dv /var/lib/libvirt/images/mydisk1.img

重新啟動虛擬機器:
virsh start RHEL7

重新啟動完成後,就可以console進入虛擬機器:
virsh console rhel7

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-03/115126.htm


IT145.com E-mail:sddin#qq.com