歐拉服務器安裝虛擬機(根據open歐拉教程編寫vnc)


安裝虛擬化核心組件

安裝方法

前提條件

  • 已經配置yum源。配置方式請參見
  • 安裝操作需要root用戶權限。

安裝步驟

  1. 安裝QEMU組件。

    # yum install -y qemu 
  2. 安裝libvirt組件。

    # yum install -y libvirt 
  3. 啟動libvirtd服務。

    # systemctl start libvirtd 

 說明:
KVM模塊已經集成在openEuler內核中,因此不需要單獨安裝。

驗證安裝是否成功

  1. 查看內核是否支持KVM虛擬化,即查看/dev/kvm和/sys/module/kvm文件是否存在,命令和回顯如下:

    $ ls /dev/kvm /dev/kvm 
    $ ls /sys/module/kvm parameters uevent 

    若上述文件存在,說明內核支持KVM虛擬化。若上述文件不存在,則說明系統內核編譯時未開啟KVM虛擬化,需要更換支持KVM虛擬化的Linux內核。

  2. 確認QEMU是否安裝成功。若安裝成功則可以看到QEMU軟件包信息,命令和回顯如下:

    $ rpm -qi qemu Name : qemu Epoch : 2 Version : 4.0.1 Release : 10 Architecture: aarch64 Install Date: Wed 24 Jul 2019 04:04:47 PM CST Group : Unspecified Size : 16869484 License : GPLv2 and BSD and MIT and CC-BY Signature : (none) Source RPM : qemu-4.0.0-1.src.rpm Build Date : Wed 24 Jul 2019 04:03:52 PM CST Build Host : localhost Relocations : (not relocatable) URL : http://www.qemu.org Summary : QEMU is a generic and open source machine emulator and virtualizer Description : QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic translation. QEMU has two operating modes: * Full system emulation. In this mode, QEMU emulates a full system (for example a PC), including a processor and various peripherials. It can be used to launch different Operating Systems without rebooting the PC or to debug system code. * User mode emulation. In this mode, QEMU can launch Linux processes compiled for one CPU on another CPU. As QEMU requires no host kernel patches to run, it is safe and easy to use. 
  3. 確認libvirt是否安裝成功。若安裝成功則可以看到libvirt軟件包信息,命令和回顯如下:

    $ rpm -qi libvirt Name : libvirt Version : 5.5.0 Release : 1 Architecture: aarch64 Install Date: Tue 30 Jul 2019 04:56:21 PM CST Group : Unspecified Size : 0 License : LGPLv2+ Signature : (none) Source RPM : libvirt-5.5.0-1.src.rpm Build Date : Mon 29 Jul 2019 08:14:57 PM CST Build Host : 71e8c1ce149f Relocations : (not relocatable) URL : https://libvirt.org/ Summary : Library providing a simple virtualization API Description : Libvirt is a C toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes). The main package includes the libvirtd server exporting the virtualization support. 
  4. 查看libvirt服務是否啟動成功。若服務處於“Active”狀態,說明服務啟動成功,可以正常使用libvirt提供的virsh命令行工具,命令和回顯如下:

    $ systemctl status libvirtd ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-08-06 09:36:01 CST; 5h 12min ago Docs: man:libvirtd(8) https://libvirt.org Main PID: 40754 (libvirtd) Tasks: 20 (limit: 32768) Memory: 198.6M CGroup: /system.slice/libvirtd.service ─40754 /usr/sbin/libvirtd

 

制作鏡像

制作qcow2格式鏡像文件的操作步驟如下:

  1. 使用root用戶安裝qemu-img軟件包。

    # yum install -y qemu-img 
  2. 使用qemu-img工具的create命令,創建鏡像文件,命令格式為:

    $ qemu-img create -f <imgFormat> -o <fileOption> <fileName> <diskSize> 

    其中,各參數含義如下:

    • imgFormat:鏡像格式,取值為raw, qcow2等。
    • fileOption:文件選項,用於設置鏡像文件的特性,如指定后端鏡像文件,壓縮,加密等特性。
    • fileName:文件名稱。
    • diskSize:磁盤大小,用於指定塊磁盤設備的大小,支持的單位有K、M、G、T,分別代表KiB、MiB、GiB、TiB。

    例如,創建一個磁盤設備大小為40GB、格式為qcow2的鏡像文件openEuler-imge.qcow2,命令和回顯如下:

    $ qemu-img create -f qcow2 openEuler-image.qcow2 40G Formatting 'openEuler-image.qcow2', fmt=qcow2 size=4294967296 cluster_size=65536 lazy_refcounts=off refcount_bits=16

 

 

搭建Linux網橋

 

以物理網卡eth0綁定到Linux網橋br0的操作為例,使用root用戶執行如下命令搭建Linux網橋:

 

  1. 安裝bridge-utils軟件包。

    Linux網橋通常通過brctl工具管理,其對應的安裝包為bridge-utils,安裝命令如下:

    # yum install -y bridge-utils 
  2. 創建網橋br0。

    # brctl addbr br0 
  3. 將物理網卡eth0綁定到Linux網橋。

    # brctl addif br0 eth0 #這里的eth0 更換成自己電腦上的,ifconfig查詢 
  4. eth0與網橋連接后,不再需要IP地址,將eth0的IP設置為0.0.0.0。

    # ifconfig eth0 0.0.0.0 
  5. 設置br0的IP地址。

    • 如果有DHCP服務器,可以通過dhclient設置動態IP地址。

      # dhclient br0 #公司里面大部分都是dhcp分配,優先使用這個,br0的IP就是自己 
    • 如果沒有DHCP服務器,給br0配置靜態IP,例如設置靜態IP為192.168.1.2,子網掩碼為255.255.255.0。

      # ifconfig br0 192.168.1.2 netmask 255.255.255.0

 

准備引導固件

概述

針對不同的架構,引導的方式有所差異。x86支持UEFI(Unified Extensible Firmware Interface)和BIOS方式啟動,AArch64僅支持UEFI方式啟動。openEuler默認已安裝BIOS啟動對應的引導文件,不需要用戶額外操作。所以這里僅介紹UEFI啟動方式的安裝方法。

統一的可擴展固件接口UEFI是一種全新類型的接口標准,用於開機自檢、引導操作系統的啟動,是傳統BIOS的一種替代方案。EDK II是一套實現了UEFI標准的開源代碼,在虛擬化場景中,通常利用EDK II工具集,通過UEFI的方式啟動虛擬機。使用EDK II工具需要在虛擬機啟動之前安裝對應的軟件包 ,本節介紹EDK II的安裝方法。

安裝方法

如果使用UEFI方式引導,需要安裝工具集EDK II,AArch64架構對應的安裝包為edk2-aarch64,x86架構對應的安裝包為edk2-ovmf。這里以AArch64架構為例,給出具體的安裝方法,x86架構僅需將edk2-aarch64替換為edk2-ovmf。

  1. 安裝edk軟件包,使用root用戶執行如下命令:

    在AArch64架構下edk2的包名為edk2-aarch64

    # yum install -y edk2-aarch64 

    在x86_64架構下edk2的包名為edk2-ovmf

    # yum install -y edk2-ovmf 
  2. 查詢edk軟件是否安裝成功,命令如下:

    在AArch64架構下查詢如下

    $ rpm -qi edk2-aarch64 

    若edk軟件安裝成功,回顯類似如下:

    Name : edk2-aarch64 Version : 20180815gitcb5f4f45ce Release : 1.oe3 Architecture: noarch Install Date: Mon 22 Jul 2019 04:52:33 PM CST Group : Applications/Emulators 

    在x86_64架構下查詢如下

    $ rpm -qi edk2-ovmf 

    若edk軟件安裝成功,回顯類似如下:

    Name : edk2-ovmf Version : 201908 Release : 6.oe1 Architecture: noarch Install Date: Thu 19 Mar 2020 09:09:06 AM CST

 

Libvirt工具采用XML格式的文件描述一個虛擬機特征,包括虛擬機名稱、CPU、內存、磁盤、網卡、鼠標、鍵盤等信息。用戶可以通過修改配置文件,對虛擬機進行管理。本章介紹XML配置文件各個元素的含義,指導用戶完成虛擬機配置。

openEulerVM.xml
<domain type='kvm'>
    <name>openEulerVM</name>
    <memory unit='GiB'>4</memory>                  修改自己的內存
    <vcpu>4</vcpu>             修改自己的cpu個數
    <os>
    <type arch='aarch64' machine='virt'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw</loader>
    <nvram>/var/lib/libvirt/qemu/nvram/openEulerVM.fd</nvram>
    </os>
    <features>
    <acpi/>
    <gic version='3'/>
    </features>
    <cpu mode='host-passthrough'>
        <topology sockets='2' cores='2' threads='1'/>
    </cpu>
    <iothreads>1</iothreads>
    <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' iothread="1"/>
        <source file='/mnt/openEuler-image.qcow2'/>
        <target dev='vda' bus='virtio'/>
        <boot order='1'/>
    </disk>
    <disk type='file' device='cdrom'>
        <driver name='qemu' type='raw'/>
        <source file='/mnt/XXXXX.iso'/>    修改自己的iso位置 ,不要放到/root目錄下面,因為權限問題盡量放到/mnt下面    這個xml文件也放到/mnt下面
<readonly/> <target dev='sdb' bus='scsi'/> <boot order='2'/> </disk> <interface type='bridge'> <source bridge='br0'/> <model type='virtio'/> </interface> <console type='pty'/> <video> <model type='virtio'/> </video> <controller type='scsi' index='0' model='virtio-scsi'/> <controller type='usb' model='ehci'/> <input type='tablet' bus='usb'/> <input type='keyboard' bus='usb'/> <graphics type='vnc' listen='0.0.0.0' passwd='n8VfjbFK'/> 這里很重要 密碼自己記住 一會使用vnc連接的時候需要用 </devices> <seclabel type='dynamic' model='dac' relabel='yes'/> </domain>

 

創建好了xml文件我們就可以創建虛擬機了:

本節給出虛擬機生命周期管理相關命令的示例。

  • 創建虛擬機

    虛擬機XML配置文件為openEulerVM.xml,命令和回顯如下:

    # virsh define openEulerVM.xml Domain openEulerVM defined from openEulerVM.xml 
  • 啟動虛擬機

    啟動名稱為openEulerVM的虛擬機,命令和回顯如下:

    # virsh start openEulerVM Domain openEulerVM started 
  • 重啟虛擬機

    重啟名稱為openEulerVM的虛擬機,命令和回顯如下:

    # virsh reboot openEulerVM Domain openEulerVM is being rebooted 
  • 關閉虛擬機

    關閉名稱為openEulerVM的虛擬機,命令和回顯如下:

    # virsh shutdown openEulerVM Domain openEulerVM is being shutdown 
  • 銷毀虛擬機

    • 若虛擬機啟動時未使用nvram文件,銷毀虛擬機命令如下:

      # virsh undefine <VMInstanse> 
    • 若虛擬機啟動時使用了nvram文件,銷毀該虛擬機需要指定nvram的處理策略,命令如下:

      # virsh undefine <VMInstanse> <strategy> 

      其中<strategy>為銷毀虛擬機的策略,可取值:

      nvram:銷毀虛擬機的同時刪除其對應的nvram文件。

      keep-nvram:銷毀虛擬機,但保留其對應的nvram文件。

      例如,刪除虛擬機openEulerVM及其nvram文件,命令和回顯如下:

      # virsh undefine openEulerVM --nvram Domain openEulerVM has been undefined

登錄虛擬機

本章介紹使用VNC登錄虛擬機的方法。

使用VNC密碼登錄

概述

當虛擬機操作系統安裝部署完成之后,用戶可以通過VNC協議遠程登錄虛擬機,從而對虛擬機進行管理操作。

前提條件

使用RealVNC、TightVNC等客戶端登錄虛擬機,在登錄虛擬機之前需要獲取如下信息:

  這里有一個重要的前提條件就是你的宿主機器上需要安裝vnc-server   安裝包地址    也可以通過命令直接安裝:yum install tigervnc tigervnc-server 

      啟動vnc:     vncserver

  關於VNC-server的使用請看這個文章:https://codeantenna.com/a/WpukCVvwVv

  • 虛擬機所在主機的IP地址。

  • 確保客戶端所在的環境可以訪問到主機的網絡。

  • 虛擬機的VNC偵聽端口,該端口一般在客戶機啟動時自動分配,一般為5900 + x(x為正整數,按照虛擬機啟動的順序遞增,且5900對用戶不可見)。

  • 如果VNC設置了密碼,還需要獲取虛擬機的VNC密碼。

     說明:
    為虛擬機VNC配置密碼,需要編輯虛擬機XML配置文件,即為graphics元素新增一個passwd屬性,屬性的值為要配置的密碼。例如,將虛擬機的VNC密碼配置為n8VfjbFK的XML配置參考如下:

     <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-us' passwd='n8VfjbFK'> 這個密碼就是vnc連接時輸入的密碼 <listen type='address' address='0.0.0.0'/> </graphics> 

操作步驟

  1. 查詢虛擬機使用的VNC端口號。例如名稱為openEulerVM的虛擬機,命令如下:

    # virsh vncdisplay openEulerVM :3 

     說明:
    登錄 VNC 需要配置防火牆規則,允許 VNC 端口的連接。參考命令如下,其中X為數值“5900 + 端口號” ,例如本例中為5903。      這里建議直接關閉防火牆

    firewall-cmd --zone=public --add-port=X/tcp 
  2. 打開VncViewer軟件,輸入主機IP和端口號。格式為“主機IP:端口號”,例如:“10.133.205.53:3”。  關於歐拉服務器下載vnc-viewer地址下載雙擊運行無需安裝  https://www.realvnc.com/en/connect/download/vnc/

  3. 單擊“確定”輸入VNC密碼(可選),登錄到虛擬機VNC進行操作。

  4. 一般都是連接不上,或者是黑屏的。我們需要修改一個地方:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM