首頁 > 軟體

RedHat Linux下KVM虛擬機器快速安裝

2020-06-16 17:12:38

RedHat Linux光碟中收錄了KVM 所以我們可以直接使用yum安裝KVM相關的包

前提是你已經配好了yum源。

yum -y install qemu-kvm virt-manager libvirt

。。。。。。。。。。。。。。。。。。。

安裝完成後啟動服務

service libvirtd start

啟動 libvirtd 守護行程 :        [確定]

。。。。。。。。。。。。。。。。。。。

輸入命令brctl show 顯示一下資訊表示OK

 

建議:service NetworkManager stop

chkconfig NetworkManager off

 

這個時候啟動服務

vir-manager 彈出下面介面

OK接下來點選“電腦”圖示按照提示根據自己的需要安裝就OK了。都是圖形介面沒什麼好說的。

如果我們在生產環境中需要安裝多台虛擬機器怎麼辦呢?克隆?OK當然克隆的最簡單方便的方法啦。但是如果直接克隆真實是很佔用資源。小編今天跟大家分享一種更輕便、更簡單的方法:

第一步:啟動進程後 在目錄/var/lib/libvirt/images/下生成一塊80G的空間 具體操作如下

[root@localhost ~]# service libvirtd start

啟動 libvirtd 守護行程:                                   [確定]

 

[root@localhost images]# qemu-img create -f qcow2 rhel6base.img 80G

[root@localhost images]#virt-manager 啟動服務

按照提示一步步安裝

注意:下面這一步的時候路徑為生成的rhel6base.img的路徑

安裝完成後重新引導進入系統後關掉虛擬機器

以剛開裝的kvm虛擬機器為模板 克隆第二太虛擬機器 具體操作如下 

[root@localhost images]# qemu-img create -b rhel6base.img -f qcow2 rhel6base2.img 

Formatting 'rhel6base2.img', fmt=qcow2 size=85899345920 backing_file='rhel6base.img' encryption=off cluster_size=65536 

啟動圖介面操作基本上沒有太大差異,注意下面兩步操作

1:使用現有的磁碟映象檔案

2:路徑為新生成的rhel6base2

 

安裝完成後檢視增大的檔案大小 只有8.7M

[root@localhost images]# ll -lh

總用量 3.8G

-rw-r--r-- 1 root root 8.7M 6月  15 15:06 rhel6base1.img

-rw-r--r-- 1 qemu qemu 3.8G 6月  15 11:24 rhel6base.img

對於技術人員來說還可以通過直接命令列進行新建虛擬機器

具體操作:

先建立增量映象檔案

[root@localhost images]#qemu-img create -b rhel6base,img -f qcow2 rhel6base2.img

[root@localhost images]# virsh list --all

 Id    名稱                         狀態

----------------------------------------------------

 -     rhel6base                      關閉

 -     rhel6basenode1                 關閉

[root@localhost images]# virsh dumpxml rhel6base

<domain type='kvm'>

  <name>rhel6base</name>

  <uuid>377ef988-42cf-5aad-771c-6e95979ea6a9</uuid>

  <memory unit='KiB'>1003520</memory>

  <currentMemory unit='KiB'>1003520</currentMemory>

  <vcpu placement='static'>1</vcpu>

  <os>

    <type arch='x86_64' machine='rhel6.5.0'>hvm</type>

    <boot dev='hd'/>

  </os>

  <features>

    <acpi/>

    <apic/>

    <pae/>

  </features>

  <clock offset='utc'/>

  <on_poweroff>destroy</on_poweroff>

  <on_reboot>restart</on_reboot>

  <on_crash>restart</on_crash>

  <devices>

    <emulator>/usr/libexec/qemu-kvm</emulator>

    <disk type='file' device='disk'>

      <driver name='qemu' type='qcow2' cache='none'/>

      <source file='/var/lib/libvirt/images/rhel6base.img'/>

      <target dev='vda' bus='virtio'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>

    </disk>

    <disk type='block' device='cdrom'>

      <driver name='qemu' type='raw'/>

      <target dev='hdc' bus='ide'/>

      <readonly/>

      <address type='drive' controller='0' bus='1' target='0' unit='0'/>

    </disk>

    <controller type='usb' index='0'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>

    </controller>

    <controller type='ide' index='0'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>

    </controller>

    <interface type='network'>

      <mac address='52:54:00:c3:8c:d4'/>

      <source network='default'/>

      <model type='virtio'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

    </interface>

    <serial type='pty'>

      <target port='0'/>

    </serial>

    <console type='pty'>

      <target type='serial' port='0'/>

    </console>

    <input type='tablet' bus='usb'/>

    <input type='mouse' bus='ps2'/>

    <graphics type='vnc' port='-1' autoport='yes'/>

    <sound model='ich6'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>

    </sound>

    <video>

      <model type='cirrus' vram='9216' heads='1'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>

    </video>

    <memballoon model='virtio'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

    </memballoon>

  </devices>

</domain>

輸出的內容就是虛擬機器的組態檔

我們可以把輸出檔案重定向輸出到/tmp下面重新命名為mymv.xml

[root@localhost images]# virsh dumpxml rhel6base > /tmp/myvm.xml

然後對組態檔進行修改

[root@localhost images]# vim /tmp/myvm.xml

克隆出來的虛擬機器需要更改 rhel的名字 mac地址  uuid號 檔名四個地方

修改名稱:

<name>rhel6base</name> --》 <name>rhel6base2</name>

修改UUID:

[root@localhost images]# uuidgen  【生成新的uuid】

   7bb06bc1-d610-4f51-a641-d1566b0a0c8b

   <uuid>377ef988-42cf-5aad-771c-6e95979ea6a9</uuid>  --》 <uuid>7bb06bc1-d610-4f51-a641-d1566b0a0c8b</uuid>

修改mac地址: <mac address='52:54:00:c3:8c:00'/>   --》 <mac          address='52:54:00:c3:8c:01'/>

修改磁碟檔名:

 <source file='/var/lib/libvirt/images/rhel6base.img'/    ---》

 <source file='/var/lib/libvirt/images/rhel6base2.img'/ 

最後:

[root@localhost images]# virsh define /tmp/myvm.xml 

定義域 rhel6base2(從 /tmp/myvm.xml)

[root@localhost images]#virt-manager  可以看到多了一台rhel6base2的虛擬機器

 

感覺這種方法操作方便,節省資源。供大家參考。

想要更快速的安裝克隆虛擬機器可以把步驟寫成指令碼。

#!/bin/bash

 

BASEVM=rhel6base

IMG_DIR=/var/lib/libvirt/images

read -p "Input a number: " VM_NUM

NEWVM=rhel6basenode$VM_NUM

qemu-img create -b $IMG_DIR/${BASEVM}.img -f qcow2 $IMG_DIR/${NEWVM}.img

virsh dumpxml ${BASEVM} > /tmp/myvm.xml

sed -i "/name>r/s/${BASEVM}/${NEWVM}/" /tmp/myvm.xml

sed -i "/uuid/s/uuid>.{36}/uuid>$(uuidgen)/" /tmp/myvm.xml

sed -i "/${BASEVM}.img/s/${BASEVM}.img/${NEWVM}.img"  /tmp/myvm.xml

sed -i "/mac add/s/00'/>/$VM_NUM'/>/" /tmp/myvm.xml 【母機mac地址後兩位00】

virsh define /tmp/myvm.xml

執行以上指令碼就可以快速克隆出來一台kvm虛擬機器

 


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