Was this page helpful?

Virtual machine 設定檔

    內容表格
    沒有標頭

    PV(Paravirtualized) 和 FV(Fully Virtualized) 設定檔有些許的不同接下來做說明.

    • PV(Paravirtualized) 設定檔
    • 不管我們是用 virt-manager / virt-install 都會在 /etc/xen 產生相對應的 Virtual Macine 設定檔.而設定檔的名稱會依據你的 virtual Machine 所命名來為這設定檔來命名.假如當初我們在建立一個 virtual Machine 時命名為 RHEL4,此時在 /etc/xen 會有一個檔案命名為 rhel4.通常在安裝完成之後我們還是可以透過 virt-manager 來修改設定檔.我們其實可以透過修改檔來達到相同的目的.我們先來看看標準的設定檔內容包含了哪些內容.目前我系統上面有一個 Virtual Machine : RHEL4 ,設定檔名稱也為 /etc/xen/RHEL4

      [[email protected] ~]# vi /etc/xen/rhel4
      name = "rhel4"
      uuid = "cf67710d-b756-086b-8cde-be61d2faca1b"
      maxmem = 512
      memory = 512
      vcpus = 1
      bootloader = "/usr/bin/pygrub"
      on_poweroff = "destroy"
      on_reboot = "restart"
      on_crash = "restart"
      vfb = [ "type=vnc,vncunused=1,keymap=en-us" ]
      disk = [ "phy:/dev/sda5,xvda,w", "phy:/dev/sda6,xvdb,w" ]
      vif = [ "mac=00:16:3e:27:95:c0,bridge=xenbr0" ]
      • name
      • 這就是 virtual Machine 的名稱,虛擬化的環境下其 virtual Machine 名稱必須為唯一的.與設定檔相同的名稱.

      • uuid
      • 通用唯一識別碼(Universally Unique Identifier,UUID),系統會指定一個唯一的 uuid 來給每一台 virtual Machine.

      • maxmem
      • 通常我們在指定記憶體大小給 virtual Machine 時可以先指定多一點,但是多指定的時候並不會真的使用到這麼多,先指定的優點是系統可以線上直接增加 virtual Machine 記憶體大小.

      • memory
      • 目前 virtual Machine 所真正使用的記體的多寡.

      • vcpus
      • 在 virtual Machine 所使用的邏輯 CPU 數目.

      • bootloader
      • 不同於 VMware 的全虛擬方式,或是 Xen 的全虛擬 virtual machine ,VMware 可以透過他虛擬的 BIOS 載入一般的 bootloader , Xen 主要使用了 Paravirtualized 的技術, 所以 virtual Machine 無法直接使用 GRUB 當作 Bootloader , 因此 Xen - Paravirtualized 採用了 PyGrub 當作我們 Virtual Machine 的 Boot loader(類似於 GRUB),

        PyGrub 可以直接載入 DomU 檔案 bootloader 所指定的開機系統的 kernel 取代了原先必須先將 kernel 的名稱寫在檔案的方式. 提供了我們能更方便直接在 PyGrub(Bootloader) 直接加入 Kernel 核心的參數.

        在使用 PyGrub 時需注意硬碟指定的順序. disk = [ "phy:/dev/sda5,xvda,w", "phy:/dev/sda6,xvdb,w" ] 包含 /boot 的 partition 必須指定為第一顆.不然系統會無法載入 bootloader 並且回報出下面的錯誤訊息.

        Error: Boot loader didn't return any data

        pygrub 還包含了一項 PXEBoot 的功能.

      • on_poweroff/reboot/crash
      • 當系統在 poweroff/reboot/crash VM 所對應的動作為何,系統在 poweroff 是做 destory 其實也就是 poweroff 主要是將 VM 的記憶體肆放並將硬碟資料確切寫回,而 reboot/crash 則是將 VM 重新開機.

      • vfb
      • Xen 底下的 virtual Machine 都是透過 VNC 來傳送畫面,所以這裡的 vfb(virtual framebuffer device) 就是設定系統畫面與輸入裝置 Keyboard/Mouse.

      • disk
      • 虛擬的 virtual Machine 所使用的硬碟或是光碟裝置可以為,硬碟可為實體 partition 也可以為 image 的方式.光碟裝置可為實體裝置或是 image .
        指定硬碟的方式:
        "phy:/dev/sda5,xvda,w"

        phy:/dev/sda5 - Dom0 實體裝置所在位置,也可以為 image 的方式.
        xvda - DomU 下將會看到的裝置名稱,如果是 cdrom 時要特別指定(hda:cdrom ).
        w - writable(用於可讀寫裝置如硬碟)

        光碟機 (CD / DVD) 也是在這邊做設定:
        "phy:/dev/hda,hda:cdrom,r".

        r - readable(用於CDROM/DVD 裝置)

      • vif
      • virtual Machine 網路裝置的設定.vif = [ "mac=00:16:3e:27:95:c0 ,bridge=xenbr0" ] 其中的虛擬與實體傳輸方式會依據不同模式而有所改變.在 RHEL5 Xen 的環境預設會建立兩個 bridge,一個則是由 QEMU 所提供出來的 virbr0,另外一個是由 Xen 所提供叫做 xenbr0,在安裝 Virtual machine 時網路卡的選擇也就是這兩種.

        1.Virtual network - virbr0
        vif =[ bridge=virbr0 ]
        或是
        2.Shared physical device - xenbr0
        vif =[ bridge=xenbr0 ]
    • FV(Fully Virtualized) 設定檔

    FV(Fully Virtualized)  是全虛擬化的 virtual machine 所以設定參數會比 PV(Paravirtualized) 多,下面只針對不同之處做說明.

    [[email protected] ~]# vi /etc/xen/FV_RHEL4
    name = "FV_RHEL4"
    uuid = "55fb6839-faad-3578-cc2d-93f753fe8a97"
    maxmem = 512
    memory = 512
    vcpus = 1
    builder = "hvm"
    kernel = "/usr/lib/xen/boot/hvmloader"
    boot = "c"
    pae = 1
    acpi = 1
    apic = 1
    localtime = 0
    on_poweroff = "destroy"
    on_reboot = "restart"
    on_crash = "restart"
    device_model = "/usr/lib64/xen/bin/qemu-dm"
    sdl = 0
    vnc = 1
    vncunused = 1
    keymap = "en-us"
    disk = [ "phy:/dev/sda3,hda,w", ",hdc:cdrom,r" ]
    vif = [ "mac=00:16:3e:6e:61:7f,bridge=xenbr0" ]
    serial = "pty"
      • builder
      • 這個 virtual machine 是使用何種技術所產生的.如果是 HVM (hardware virtual machine) 就代表是由 XEN full virtualization(Hardware-assisted virtualization) 這個技術所支援的,需要有 CPU 的支援在 Intel 叫做 VT(Virtualization Technology) 或者 AMD 的 V Pacifica.

      • kernel
      • 所以使用 XEN full virtualization(Hardware-assisted virtualization) 這個技術都會採用 hvmloader(/usr/lib/xen/boot/hvmloader) 當 virtual machine 的前導.

      • boot
      • 預設的開機裝置,裝置名稱方式類似於 windows ,virtual machine 為 Linux 時也適用 (Default='c';Value='a|b|c|d')

      • pae
      • Physical Address Extension (PAE) 讓 32bit 的 virtual machine 支援大於 4GB 以上的記憶體 (default=1; Value='PAE')

      • acpi
      • Advanced Configuration and Power Interface (ACPI) 進階的電源管理系統 (default=1; Value='ACPI')

      • apic
      • Advanced Programmable Interrupt Controller (APIC) 進階的 IRQ 管理器 (default=1; Value='APIC')

      • localtime
      • 是否將 RTC(real-time clock) 設成當地時間??? (Default=0; Value='no|yes')

      • device_model
      • 全虛擬化採用 QEMU 的模擬方式,QEMU 主要是模擬整個電腦的系統包括 CPU 及其他週邊裝置. /usr/lib64/xen/bin/qemu-dm 為其主程式

      • sdl
      • Simple DirectMedia Layer(SDL) 主要提供了圖形顯示的函數庫,可跨平台使用,常應用在 遊戲 , 模擬器 , 媒體播放器等. (Default=None)

      • vnc
      • Virtual Network Computing(vnc) 是可以遠端遙控桌面的服務 (Default=None) 系統預設使用 127.0.0.1 port N+5900 其中的 N 會依據 virtual machine 的 domain id 來決定.

      • vncunused
      • 如果採用了 vnc 的遠端桌面服務而且 vncunused=1 時,系統會隨意的找一個大於 5900 沒有在使用的 port 來做 VNC 連線. (Default=1)

      • keymap
      • 選擇我們用的鍵盤是哪種格式,通常我們使用的是 US keymap.

      • serial
      • 序列終端裝置 serial console 的選擇有兩種 pty(Pseduo Tty) 或是 vc(Virtual console)

      關於其他參數可以參考 Xen 的官方網站. http://www.xen.org/files/Support/XenConfigurationDetails.pdf

    • 自動啟動(Auto booting) Virtual Machine

    基本上在 RHEL5 啟動 Dom0 系統時,virtual machine 並不會同時啟動,所以你要在開機時一並將這些 virtual machine 一並啟動需將 virtual machine 的設定檔連結到 /etc/xen/auto 目錄下面.方法如下:
    目前我所有的 Guest OS 是 rhel4 / rhel5

    下次系統重新開機包括 rhel4 / rhel5 都會一起啟動.

    [[email protected] ~]# cd /etc/xen
    [[email protected] ~]# chkconfig xend on
    [[email protected] xen]# ln rhel4 auto/
    [[email protected] xen]# ln rhel5 auto/
    • virtual machine image files (當 Selinux 開啟時,檔案存取會受到嚴格的管控,所以連 virtual machine images 所放置的位置都並需存放在固定目錄下)

    /var/lib/xen/images

    • Log file( RHEL5 所採用的虛擬化最大的兩部份是 Xen + Qemu 其 log 記錄檔如下)

    /var/log/xen/xend.log
    /var/log/xen/qemu-dm.log

    • proc 系​統​資​訊​的​資​源

    /proc/xen/capabilities
    /proc/xen/balloon        關於記憶體
    /proc/xen/xenbus/

    Was this page helpful?
    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core