Fedora 12

虛​擬​化​指​南​

Fedora 上​的​虛​擬​化​定​義​指​南​

版 1

商​標​

Christoph Curran


法律聲明

Copyright © 2009 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
For guidelines on the permitted uses of the Fedora trademarks, refer to https://fedoraproject.org/wiki/Legal:Trademark_guidelines.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
All other trademarks are the property of their respective owners.
摘要
Fedora 12 虛​擬​化​指​南​包​含​了​使​用​於 Fedora 12 中​的​虛​擬​化​技​術​之​安​裝​、​配​置​、​管​理​、​提​示​、​技​巧​,以​及​疑​難​排​解​的​相​關​資​訊​。​

序​言​
1. 關​於​本​指​南​
2. 文​件​常​規​
2.1. 排​字​上​的​常​規​
2.2. 引​述​常​規​
2.3. 註​解​和​警​告​
3. 我們需要您的意見!
I. Installation
1. 安​裝​虛​擬​化​套​件​
1.1. 安​裝 Fedora 時​安​裝 KVM
1.2. 在​一​部​現​有​的 Fedora 系​統​上​安​裝 KVM 套​件​
2. 虛​擬​化​客​座​端​安​裝​總​覽​
2.1. 透​過 virt-install 來​建​立​客​座​端​
2.2. 透​過 virt-manager 來​建​立​客​座​端​
2.3. 使​用 PXE 來​安​裝​客​座​端​
3. 客​座​端​作​業​系​統​的​安​裝​程​序​
3.1. 將 Red Hat Enterprise Linux 5 安​裝​為​半​虛​擬​化​的​客​座​端​
3.2. 將 Red Hat Enterprise Linux 5 安​裝​為​完​整​虛​擬​化​的​客​座​端​
3.3. 安​裝 Windows XP 客​座​端​為​完​整​的​虛​擬​化​客​座​端​
3.4. 安​裝 Windows Server 2003 為​完​整​的​虛​擬​化​客​座​端​
3.5. 安​裝 Windows Server 2008 為​完​整​的​虛​擬​化​客​座​端​
II. Configuration
4. 虛​擬​化​的​區​塊​裝​置​
4.1. 建​立​虛​擬​化​軟​碟​控​制​器​
4.2. 在​客​座​端​上​新​增​儲​存​裝​置​
4.3. 配​置​持​續​性​儲​存​裝​置​
4.4. 新​增​虛​擬​化​的 CD-ROM 或 DVD 裝​置​至​客​座​端​上​
5. 共​享​儲​存​裝​置​和​虛​擬​化​
5.1. 使​用 iSCSI 來​儲​存​客​座​端​
5.2. 使​用 NFS 來​儲​存​客​座​端​
5.3. 使​用 GFS2 來​儲​存​客​座​端​
6. 良​好​的​伺​服​器​使​用​習​慣​
7. 虛​擬​化​的​安​全​性​
7.1. SELinux 和​虛​擬​化​
7.2. SELinux 上​的​考​量​
8. 網​路​設​定​
8.1. 使​用 libvirt 來​進​行​網​路​位​址​轉​譯​
8.2. 透​過 libvirt 來​進​行​橋​接​網​路​作​業​
9. KVM 半​虛​擬​化​驅​動​程​式​
9.1. 安​裝 KVM Windows 半​虛​擬​化​驅​動​程​式​
III. Administration
10. 使​用 xend 來​管​理​客​座​端​
11. KVM 客​座​端​時​間​管​理​
12. KVM 即​時​遷​移​
12.1. 即​時​遷​移​需​求​
12.2. 共​享​儲​存​裝​置​範​例​:用​來​進​行​基​本​遷​移​的 NFS
12.3. 以 virsh 來​進​行​即​時 KVM 遷​移​
12.4. 以 virt-manager 來​進​行​遷​移​
13. 虛​擬​化​客​座​端​的​遠​端​管​理​
13.1. 透​過​使​用 SSH 來​進​行​遠​端​管​理​
13.2. 透​過​使​用 TLS 與 SSL 來​進​行​遠​端​管​理​
13.3. 傳​輸​模​式​
IV. 虛​擬​化​參​考​指​南​
14. 虛​擬​化​工​具​
15. 透​過 virsh 來​管​理​客​座​端​
16. 使​用​虛​擬​主​機​管​理​程​式​(Virtual Machine Manager,virt-manager)來​管​理​客​座​端​
16.1. 開​放​連​線​視​窗​
16.2. 虛​擬​主​機​管​理​程​式​的​主​視​窗​
16.3. 虛​擬​主​機​管​理​程​式​的​詳​情​視​窗
16.4. 虛​擬​主​機​圖​形​主​控​台
16.5. Starting virt-manager
16.6. 復​原​已​儲​存​的​機​器
16.7. 顯​示​客​座​端​詳​細​資​訊​
16.8. 狀​態​監​控​
16.9. 顯​示​客​座​端​的​標​識​符​號​
16.10. 顯​示​客​座​端​的​狀​態
16.11. 顯​示​虛​擬 CPU
16.12. 顯​示 CPU 使​用​率​
16.13. 顯​示​記​憶​體​使​用​率
16.14. 管​理​虛​擬​網​路​
16.15. 建​立​一​個​虛​擬​網​路​
V. Tips and Tricks
17. 提​示​和​技​巧​
17.1. 自​動​啟​動​客​座​端​
17.2. 在 KVM 與 Xen hypervisor 之​間​互​換​
17.2.1. 從 Xen 到 KVM
17.2.2. 從 KVM 到 Xen
17.3. 使​用 qemu-img
17.4. 在 KVM 中​超​量​使​用​
17.5. 修​改 /etc/grub.conf
17.6. 驗​證​虛​擬​化​延​伸​
17.7. 辨​識​客​座​端​類​型​與​實​做​
17.8. 產​生​一​個​新​的​獨​特 MAC 位​址​
17.9. 非​常​安​全​的 ftpd
17.10. 配​置 LUN 的​持​續​性​
17.11. 停​用​客​座​端​的 SMART 磁​碟​監​控​
17.12. 複​製​客​座​端​配​置​檔​案​
17.13. 複​製​一​個​現​有​的​客​座​端​以​及​它​的​配​置​檔​案​
18. 建​立​自​訂​化​的 libvirt script
18.1. 搭​配​使​用 virsh 與 XML 配​置​檔​案​
VI. Troubleshooting
19. Troubleshooting
19.1. Loop 裝​置​錯​誤​
19.2. 在 BIOS 中​啟​用 Intel VT 和 AMD-V 虛​擬​化​硬​體​延​伸​
A. 額​外​資​源​
A.1. 線​上​資​源​
A.2. 已​安​裝​的​文​件​
B. 修​訂​紀​錄​
C. 版​權​說​明​
小辭彙

序​言​

本​書​為 Fedora 12 虛​擬​化​指​南​。​本​指​南​包​含​了 Fedora 12 中​各​項​虛​擬​化​產​品​的​使​用​與​管​理​資​訊​。​

1. 關​於​本​指​南​

本​指​南​分​成​七​個​部​份​:
  • 系​統​需​求​
  • Installation
  • Configuration
  • Administration
  • 參​照​
  • Tips and Tricks
  • Troubleshooting

2. 文​件​常​規​

本​指​南​使​用​了​幾​種​常​規​來​強​調​特​定​文​字​與​詞​組​並​著​重​於​特​定​的​資​訊​。​
在 PDF 和​書​面​版​本​中​,本​指​南​使​用​了​來​自​於 Liberation Fonts 字​體​組​的 typefaces。​倘​若 Liberation Fonts 字​體​已​安​裝​在​您​系​統​上​的​話​,該​字​體​也​會​被​使​用​於 HTML 版​本​中​。​若​是​沒​有​的​話​,其​它​相​等​的 typefaces 便​會​被​顯​示​。​請​注​意​:就​預​設​值​來​講​,Red Hat Enterprise Linux 5(與​更​新​版​本​)已​包​含​了 Liberation Fonts 字​體​。​

2.1. 排​字​上​的​常​規​

有​四​種​被​用​來​強​調​特​定​文​字​與​詞​組​的​排​字​常​規​。​這​些​常​規​以​及​它​們​所​適​用​於​的​情​況​如​下​。​
固​定​粗​體​字​型​(Mono-spaced Bold)
用​來​強​調​系​統​輸​入​,包​括 shell 指​令​、​檔​案​名​稱​與​路​徑​。​同​時​也​被​使​用​來​強​調 key caps 與​按​鍵​組​合​。​例​如​:
To see the contents of the file my_next_bestselling_novel in your current working directory, enter the cat my_next_bestselling_novel command at the shell prompt and press Enter to execute the command.
The above includes a file name, a shell command and a key cap, all presented in Mono-spaced Bold and all distinguishable thanks to context.
Key-combinations can be distinguished from key caps by the hyphen connecting each part of a key-combination. For example:
Press Enter to execute the command.
Press Ctrl+Alt+F1 to switch to the first virtual terminal. Press Ctrl+Alt+F7 to return to your X-Windows session.
The first sentence highlights the particular key cap to press. The second highlights two sets of three key caps, each set pressed simultaneously.
If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in Mono-spaced Bold. For example:
File-related classes include filesystem for file systems, file for files, and dir for directories. Each class has its own associated set of permissions.
Proportional Bold
This denotes words or phrases encountered on a system, including application names; dialogue box text; labelled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:
Choose System > Preferences > Mouse from the main menu bar to launch Mouse Preferences. In the Buttons tab, click the Left-handed mouse check box and click Close to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand).
To insert a special character into a gedit file, choose Applications > Accessories > Character Map from the main menu bar. Next, choose Search > Find… from the Character Map menu bar, type the name of the character in the Search field and click Next. The character you sought will be highlighted in the Character Table. Double-click this highlighted character to place it in the Text to copy field and then click the Copy button. Now switch back to your document and choose Edit > Paste from the gedit menu bar.
The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in Proportional Bold and all distinguishable by context.
Note the > shorthand used to indicate traversal through a menu and its sub-menus. This is to avoid the difficult-to-follow 'Select Mouse from the Preferences sub-menu in the System menu of the main menu bar' approach.
Mono-spaced Bold Italic or Proportional Bold Italic
Whether Mono-spaced Bold or Proportional Bold, the addition of Italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:
To connect to a remote machine using ssh, type ssh username@domain.name at a shell prompt. If the remote machine is example.com and your username on that machine is john, type ssh john@example.com.
The mount -o remount file-system command remounts the named file system. For example, to remount the /home file system, the command is mount -o remount /home.
To see the version of a currently installed package, use the rpm -q package command. It will return a result as follows: package-version-release.
Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system.
Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:
When the Apache HTTP Server accepts requests, it dispatches child processes or threads to handle them. This group of child processes or threads is known as a server-pool. Under Apache HTTP Server 2.0, the responsibility for creating and maintaining these server-pools has been abstracted to a group of modules called Multi-Processing Modules (MPMs). Unlike other modules, only one module from the MPM group can be loaded by the Apache HTTP Server.

2.2. 引​述​常​規​

有​兩​種​(一​般​多​行​的​)資​料​類​型​會​在​圍​繞​它​的​文​字​中​被​強​調​出​。​
傳​送​至​終​端​機​的​輸​出​設​置​為 Mono-spaced Roman 並​且​以​此​方​式​顯​示​:
books        Desktop   documentation  drafts  mss    photos   stuff  svn
books_tests  Desktop1  downloads      images  notes  scripts  svgs
原​始​碼​排​列​也​設​置​為 Mono-spaced Roman 不​過​會​被​以​下​列​方​式​顯​示​並​強​調​:
package org.jboss.book.jca.ex1;

import javax.naming.InitialContext;

public class ExClient
{
   public static void main(String args[]) 
       throws Exception
   {
      InitialContext iniCtx = new InitialContext();
      Object         ref    = iniCtx.lookup("EchoBean");
      EchoHome       home   = (EchoHome) ref;
      Echo           echo   = home.create();

      System.out.println("Created Echo");

      System.out.println("Echo.echo('Hello') = " + echo.echo("Hello"));
   }
   
}

2.3. 註​解​和​警​告​

最​後​,我​們​會​使​用​三​種​視​覺​上​的​形​式​來​強​調​可​能​會​被​漏​掉​的​資​訊​。​

Note(註​解​)

註​解​代​表​某​些​項​目​的​提​示​、​捷​徑​或​是​其​它​完​成​方​式​。​忽​略​註​解​並​不​會​有​太​大​的​影​響​,不​過​您​可​能​會​忽​略​掉​某​些​能​較​輕​鬆​完​成​工​作​的​方​式​。​

Important(重​點​)

重​點​方​塊​會​將​容​易​漏​掉​的​項​目​詳​細​列​出​:只​對​應​於​當​下 session 的​配​置​變​更​,或​是​某​些​要​套​用​更​新​前​必​須​將​之​重​新​啟​用​的​服​務​。​倘​若​您​忽​略​掉​重​點​方​塊​,雖​然​不​會​造​成​資​料​遺​失​,不​過​卻​會​造​成​工​作​上​的​不​便​和​其​它​影​響​。​

Warning(警​告​)

任​何​警​告​都​不​該​被​忽​略​掉​。​忽​略​警​告​的​話​很​有​可​能​會​造​成​資​料​上​的​遺​失​。​

3. 我們需要您的意見!

當您提交錯誤報告時,請務必提供指南的識別碼:Virtualization_Guide
若您擁有改善文件的建議,請儘可能地將它詳細描述清楚。若您您發現錯誤的話,請包含區段編號以及該錯誤周圍的部分文字,如此一來我們便能輕易地找到該錯誤。

部 I. Installation

章 1. 安​裝​虛​擬​化​套​件​

1.1. 安​裝 Fedora 時​安​裝 KVM

本​節​涵​蓋​了​在​新​的 Fedora 12 安​裝​程​序​進​行​時​,安​裝 KVM 套​件​的​相​關​資​訊​。​

您​需​要​安​裝​上​的​協​助​嗎​?

《​Fedora 12 安​裝​指​南​》​(可​由 http://docs.fedoraproject.org 網​站​取​得​)涵​蓋​了​安​裝 Fedora 12 上​的​詳​細​說​明​。​
  1. 藉​由 Fedora 12 的​安​裝​光​碟​、​DVD 或 PXE 來​啟​動​一​項 Fedora 的​互​動​式​安​裝​介​面​。​
  2. 完​成​「​選​擇​套​件​」​之​前​的​所​有​步​驟​。​
    請​選​擇​「​虛​擬​化​」​套​件​,然​後​點​選​「​立​即​自​訂​」​選​項​。​
  3. 選​擇​「​KVM」​套​件​群​組​。​不​要​選​擇​「​虛​擬​化​」​套​件​群​組​。​這​會​選​擇​並​安​裝 KVM hypervisor、​virt-manager、​libvirtvirt-viewer。​
  4. 自​訂​套​件​(視​需​要​而​定​)

    如​果​您​需​要​其​他​的​虛​擬​化​套​件​,請​自​訂​「​虛​擬​化​」​群​組​。​
    請​按​下​「​關​閉​」​,然​後​「​下​一​步​」​來​繼​續​安​裝​。​
利​用 kickstart 檔​案​來​安​裝 KVM 套​件​
此​部​份​描​述​了​如​何​使​用 Kickstart 檔​案​來​安​裝 Fedora 與 KVM hypervisor 套​件​。​Kickstart 檔​案​能​提​供​大​型​、​自​動​化​的​安​裝​程​序​,並​且​無​須​用​戶​手​動​式​地​安​裝​個​別​的​系​統​。​此​部​份​中​的​步​驟​將​會​協​助​您​建​立​,並​使​用 Kickstart 檔​案​來​安​裝 Fedora 與​虛​擬​化​套​件​。​
在 Kickstart 檔​案​的 %packages 一​節​裡​,加​入​以​下​套​件​群​組​:
%packages
@kvm
您​可​透​過 Fedora Project 網​站​,http://docs.fedoraproject.org,在 Fedora 12 安​裝​指​南​ 中​取​得​更​多​有​關​於 Kickstart 檔​案​的​相​關​資​訊​。​

1.2. 在​一​部​現​有​的 Fedora 系​統​上​安​裝 KVM 套​件​

此​部​份​描​述​了​在​現​有​的 Fedora 12(或​更​新​版​本​)上​,安​裝 KVM hypervisor 的​所​需​步​驟​。​
透​過 yum 來​安​裝 KVM hypervisor
若​要​在 Fedora 上​使​用​虛​擬​化​的​話​,您​將​需​要 kvm 套​件​。​kvm 套​件​包​含​著 KVM kernel 模​組​,並​在​預​設​的 Linux kernel 上​提​供 KVM hypervisor。​
若​要​安​裝 kvm 套​件​,請​執​行​:
# yum install kvm
現​在​,安​裝​額​外​的​虛​擬​化​管​理​套​件​。​
安​裝​其​它​建​議​的​虛​擬​化​套​件​:
# yum install virt-manager libvirt libvirt-python python-virtinst

章 2. 虛​擬​化​客​座​端​安​裝​總​覽​

在​主​系​統​上​安​裝​了​虛​擬​化​套​件​之​後​,就​可​以​建​立​客​座​端​作​業​系​統​。​本​章​描​述​了​在​虛​擬​機​器​上​,安​裝​客​座​端​作​業​系​統​的​程​序​。​您​可​以​使​用 virt-manager 的​新​增​按​鈕​,或​使​用​命​令​列​工​具 virt-install 來​建​立​客​座​端​。​本​章​將​提​及​這​兩​種​方​法​。​
欲​知​特​定 Fedora 版​本​、​其​它 Linux 發​行​版​本​、​Solaris 與 Windows 的​詳​細​安​裝​指​示​,請​參​閱 章 3, 客​座​端​作​業​系​統​的​安​裝​程​序​ 來​取​得​相​關​程​序​上​的​資​訊​。​

2.1. 透​過 virt-install 來​建​立​客​座​端​

您​可​以​在​命​令​列​中​,使​用 virt-install 指​令​來​建​立​虛​擬​化​客​座​端​。​您​可​以​藉​由​互​動​式​方​式​來​使​用 virt-install,或​用​於​一​個 script 中​來​自​動​化​虛​擬​機​器​的​建​置​。​當​使​用 virt-install 和 kickstart 檔​案​時​,您​可​進​行​無​人​式​的​虛​擬​機​器​安​裝​程​序​。​
virt-install 工​具​提​供​了​幾​個​您​可​傳​送​至​指​令​列​上​的​選​項​。​要​看​完​整​的​選​項​,請​執​行​:
$ virt-install --help
virt-install 的 man page 也​為​每​個​選​項​與​重​要​的​變​數​,提​供​了​詳​細​資​訊​。​
qemu-img 是​相​關​指​令​,可​以​在​使​用 virt-install 之​前​,設​定​儲​存​選​項​。​
另​一​個​重​要​選​項​是 --vnc,它​會​為​客​座​端​的​安​裝​過​程​,開​啟​圖​形​化​介​面​的​視​窗​。​
本​範​例​建​立​的​是 Red Hat Enterprise Linux 3 的​客​座​端​,名​為 rhel3support。​本​範​例​使​用​光​碟​片​來​安​裝​,有​虛​擬​網​路​與 5GB 的​區​塊​裝​置​映​像​檔​;同​時​使​用​的​是 KVM hypervisor。​
# virt-install --accelerate --hvm --connect qemu:///system \
        --network network:default \
        --name rhel3support --ram=756\
        --file=/var/lib/libvirt/images/rhel3support.img \
        --file-size=6 --vnc --cdrom=/dev/sr0
範例 2.1. 使​用 virt-install 與 KVM 來​建​立 Red Hat Enterprise Linux 3 客​座​端​

# virt-install --name Fedora11 --ram 512 --file=/var/lib/libvirt/images/Fedora11.img \
        --file-size=3 --vnc --cdrom=/var/lib/libvirt/images/Fedora11.iso
範例 2.2. 使​用 virt-install 來​建​立 Fedora 11 客​座​端​

2.2. 透​過 virt-manager 來​建​立​客​座​端​

virt-manager 為​虛​擬​機​器​管​理​員​,適​用​來​建​立​、​管​理​虛​擬​客​座​端​的​圖​形​工​具​。​
過程 2.1. 使​用 virt-manager 來​建​立​虛​擬​客​座​端​
  1. 若​要​啟​動 virt-manager,請​以 root 身​份​執​行​下​列​指​令​:
    # virt-manager &
    
    virt-manager 指​令​會​開​啟​一​個​新​的​圖​形​化​用​戶​介​面​。​若​您​沒​有 root 權​限​或​沒​有​使​用 sudo 的​話​,許​多​功​能​都​無​法​選​擇​,包​括​新​增​按​鈕​。​如​此​一​來​您​將​無​法​建​立​新​的​虛​擬​機​器​。​
  2. 開​啟​檔​案 -> 開​啟​連​線​。​以​下​的​對​話​視​窗​會​出​現​。​請​選​擇 hypervisor,然​後​點​選 連​接​按​鈕​:
  3. virt-manager 視​窗​能​讓​您​建​立​新​的​虛​擬​機​器​。​使​用​新​增​按​鈕​來​建​立​一​部​新​的​客​座​端​。​這​會​開​啟​如​圖​的​精​靈​介​面​。​
  4. 「​建​立​新​的​虛​擬​系​統​」​視​窗​提​供​了​您​得​提​供​的​資​訊​摘​要​,以​便​建​立​虛​擬​機​器​:
    檢​視​安​裝​所​需​的​資​訊​,然​後​點​選​「​下​一​步​」​。​
  5. 「​選​擇​虛​擬​化​方​法​」​視​窗​會​出​現​。​請​選​擇​「​半​虛​擬​化​」​或​「​完​整​虛​擬​化​」​。​
    完​整​虛​擬​化​需​要​有 Intel® VT 或 AMD-V 功​能​的​處​理​器​。​如​果​這​兩​種​虛​擬​化​延​伸​功​能​並​不​存​在​,完​整​虛​擬​化​按​鈕​或​啟​用​核​心 / 硬​體​加​速​就​無​法​選​擇​。​如​果 kernel-xen 不​是​正​在​執​行​的​核​心​,半​虛​擬​化​選​項​就​無​法​選​擇​。​
    如​果​您​使​用​的​是 KVM hypervisor,那​就​只​有​完​整​虛​擬​化​功​能​可​以​選​擇​。​
    選​擇​虛​擬​化​類​型​,然​後​按​下​「​下​一​步​」​按​鈕​。​
  6. 安​裝​媒​介​的​位​置​視​窗​會​詢​問​您​所​選​安​裝​類​型​的​位​置​。​這​視​窗​的​內​容​會​依​據​先​前​步​驟​而​有​所​不​同​。​
    1. 若​要​進​行​半​虛​擬​化​的​安​裝​程​序​,您​需​要​一​個​可​存​取​的​安​裝​樹​,請​使​用​以​下​任​何​一​種​網​路​通​訊​協​定​:HTTP、​FTPNFS。​安​裝​媒​介​的​網​址​必​須​包​含 Fedora 的​安​裝​目​錄​樹​,此​目​錄​樹​乃​透​過​使​用 NFS、​FTPHTTP 所 host 的​。​您​可​使​用​主​電​腦​,或​另​一​個​鏡​像​來​提​供​這​些​網​路​服​務​與​檔​案​。​
      使​用​光​碟​映​像​檔​(附​屬​檔​名​為 .iso)。​掛​載​映​像​檔​之​後​,利​用​以​上​任​何​一​種​通​訊​協​定​來​提​供​檔​案​。​
      此​外​,您​亦​可​藉​由 Fedora 的​鏡​像​複​製​安​裝​目​錄​樹​。​
    2. 完​整​虛​擬​化​的​安​裝​程​序​需​要​可​開​機​的​光​碟​片​,或​位​於​本​機​的​映​像​檔​(附​屬​檔​名​為 .iso.img)。​一​般​來​講​,Windows 的​安​裝​程​序​所​使​用​的​是 .iso 檔​案​,Linux 或​類​似 UNIX 的​作​業​系​統​在​使​用​網​路​上​的​安​裝​樹​之​前​,會​使​用 .iso 檔​案​來​安​裝​基​本​系​統​。​
    選​擇​了​適​當​的​安​裝​媒​介​後​,點​選​「​下​一​步​」​。​
  7. The Assigning storage space window displays. Choose a disk partition, LUN or create a file based image for the guest storage.
    所​有​基​於​檔​案​的​客​座​端​映​像​檔​皆​儲​存​在 /var/lib/xen/images/ 目​錄​中​,這​就​是 Fedora 中​,基​於​檔​案​的​映​像​檔​常​規​。​其​它​目​錄​位​置​皆​會​被 SELinux 所​禁​用​。​若​您​的 SELinux 是​處​於​強​制​(enforcing)模​式​下​,請​參​閱 節 7.1, “SELinux 和​虛​擬​化​” 以​取​得​更​多​有​關​於​安​裝​客​座​端​的​詳​細​資​訊​。​
    Your guest storage image should be larger than the size of the installation, any additional packages and applications, and the size of the guests swap file. The installation process will choose the size of the guest's swap file based on size of the RAM allocated to the guest.
    Allocate extra space if the guest needs additional space for applications or other data. For example, web servers require additional space for log files.
    Choose the appropriate size for the guest on your selected storage type and click the Forward button.

    注意

    針​對​於​虛​擬​機​器​映​像​,我​們​建​議​您​使​用​預​設​的​目​錄​,該​目​錄​為 /var/lib/xen/images/。​若​您​使​用​了​一​個​不​同​的​位​置​(比​方​說​在​此​範​例​中​為 /xen/images/),請​確​認​該​位​置​已​被​加​入​至​您​的 SELinux 政​策​中​,並​且​在​繼​續​進​行​安​裝​程​序​之​前​先​將​它​重​新​標​記​(之​後​,在​本​文​件​中​您​將​會​發​現​如​何​修​改​您 SELinux 政​策​的​相​關​資​訊​)。​
  8. The Allocate memory and CPU window displays. Choose appropriate values for the virtualized CPUs and RAM allocation. These values affect the host's and guest's performance.
    客​座​端​需​要​足​夠​的​實​體​記​憶​體​,才​能​有​效​率​、​有​效​能​地​執​行​。​請​選​擇​適​合​客​座​端​作​業​系​統​與​應​用​程​式​所​需​的​記​憶​體​大​小​。​大​部​分​作​業​系​統​至​少​需​要 512MB 的​記​憶​體​,才​能​有​效​運​作​。​請​記​得​,客​座​端​使​用​的​是​實​體​記​憶​體​。​執​行​太​多​客​座​端​,或​讓​主​系​統​的​記​憶​體​不​足​,都​會​導​致​大​量​使​用​虛​擬​記​憶​體​(即​硬​碟​置​換​空​間​)。​虛​擬​記​憶​體​的​速​度​較​慢​,會​導​致​系​統​效​能​降​低​、​回​應​變​慢​。​請​確​定​您​為​主​電​腦​與​所​有​客​座​端​,分​配​了​足​夠​的​記​憶​體​,這​樣​才​能​有​效​運​作​。​
    Assign sufficient virtual CPUs for the virtualized guest. If the guest runs a multithreaded application assign the number of virtualized CPUs it requires to run most efficiently. Do not assign more virtual CPUs than there are physical processors (or hyper-threads) available on the host system. It is possible to over allocate virtual processors, however, over allocating has a significant, negative affect on guest and host performance due to processor context switching overheads.
  9. 至​此​步​驟​,您​將​會​看​見​您​所​輸​入​的​配​置​資​訊​的​摘​要​畫​面​。​請​檢​視​該​資​訊​,並​視​需​要​使​用​「​上​一​步​」​按​鈕​來​進​行​變​更​。​當​您​滿​意​所​輸​入​的​資​料​以​後​,請​按​下​「​完​成​」​按​鈕​,接​著​安​裝​程​序​便​會​開​始​。​
    VNC 視​窗​會​開​啟​,顯​示​客​座​端​作​業​系​統​安​裝​程​序​已​經​開​始​。​
至​此​,使​用 virt-manager 來​建​立​客​座​端​的​一​般​步​驟​就​已​完​成​。​章 3, 客​座​端​作​業​系​統​的​安​裝​程​序​ 包​含​了​逐​步​的​指​示​,並​指​示​您​該​如​何​安​裝​各​種​常​見​的​作​業​系​統​。​

2.3. 使​用 PXE 來​安​裝​客​座​端​

本​節​涵​蓋​了​使​用 PXE 來​安​裝​客​座​端​的​所​需​步​驟​。​安​裝 PXE 客​座​端​需​要​共​享​的​網​路​裝​置​,又​稱​為​網​路​橋​接​裝​置​(network bridge)。​以​下​程​序​涵​蓋​了​透​過 PXE 來​安​裝​時​,建​立​與​使​用​橋​接​裝​置​的​步​驟​。​
  1. 建​立​新​的​橋​接​裝​置​

    1. 請​在 /etc/sysconfig/network-scripts/ 目​錄​裡​建​立​新​的​網​路 script 檔​。​這​範​例​建​立​了​名​為 ifcfg-installation 的​檔​案​,這​檔​案​包​含​了​一​個​名​為 installation 的​橋​接​裝​置​。​
      # cd /etc/sysconfig/network-scripts/
      # vim ifcfg-installation
      DEVICE=installation
      TYPE=Bridge
      BOOTPROTO=dhcp
      ONBOOT=yes
      

      Warning

      The line, TYPE=Bridge, is case-sensitive. It must have uppercase 'B' and lower case 'ridge'.
    2. 啟動新的橋接裝置。
      # ifup installation
      
    3. 目​前​還​沒​有​其​他​介​面​加​入​這​個​新​的​橋​接​裝​置​。​請​使​用 brctl show 指​令​,來​檢​視​系​統​上​關​於​橋​接​裝​置​的​詳​細​資​料​。​
      # brctl show
      bridge name     bridge id               STP enabled     interfaces
      installation    8000.000000000000       no
      virbr0          8000.000000000000       yes
      
      virbr0 橋​接​裝​置​是 libvirt 的​預​設​橋​接​裝​置​,用​在​預​設​乙​太​網​路​的 NAT(網​路​位​址​轉​譯​)功​能​上​。​
  2. 將​介​面​加​至​新​的​橋​接​裝​置​上​

    為​介​面​編​輯​配​置​檔​。​請​使​用​之​前​步​驟​中​建​立​的​橋​接​裝​置​名​稱​,在​配​置​檔​中​新​增 BRIDGE 參​數​。​
    # Intel Corporation Gigabit Network Connection
    DEVICE=eth1
    BRIDGE=installation
    BOOTPROTO=dhcp
    HWADDR=00:13:20:F7:6E:8E
    ONBOOT=yes
    
    編​輯​配​置​檔​案​之​後​,重​新​啟​動​網​路​或​重​新​開​機​。​
    # service network restart
    
    使​用 brctl show 指​令​,來​檢​查​介​面​是​否​已​經​連​上​。​
    # brctl show
    bridge name     bridge id               STP enabled     interfaces
    installation    8000.001320f76e8e       no              eth1
    virbr0          8000.000000000000       yes
    
  3. 安​全​配​置​

    Configure iptables to allow all traffic to be forwarded across the bridge.
    # iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
    # service iptables save
    # service iptables restart
    

    Disable iptables on bridges

    Alternatively, prevent bridged traffic from being processed by iptables rules. In /etc/sysctl.conf append the following lines:
    net.bridge.bridge-nf-call-ip6tables = 0
    net.bridge.bridge-nf-call-iptables = 0
    net.bridge.bridge-nf-call-arptables = 0
    
    Reload the kernel parameters configured with sysctl
    # sysctl -p /etc/sysctl.conf
    
  4. 在​安​裝​之​前​重​新​啟​動 libvirt

    Restart the libvirt daemon.
    # service libvirtd reload
    
橋​接​裝​置​配​置​完​成​,您​現​在​可​以​開​始​安​裝​。​
使​用 virt-install 來​進​行 PXE 安​裝​
virt-install 裡​,新​增 --network=bridge:BRIDGENAME 安​裝​參​數​。​要​透​過 PXE 來​安​裝​,請​使​用 --pxe 參​數​。​
# virt-install --accelerate --hvm --connect qemu:///system \
    --network=bridge:installation --pxe\
    --name EL10 --ram=756 \
    --vcpus=4
    --os-type=linux --os-variant=rhel5
    --file=/var/lib/libvirt/images/EL10.img \
範例 2.3. 使​用 virt-install 來​進​行 PXE 安​裝​

使​用 virt-manager 來​進​行 PXE 安​裝​
以​下​步​驟​與​標​準​的 virt-manager 安​裝​步​驟​不​同​。​有​關​於​標​準​安​裝​的​資​訊​,請​參​閱 章 3, 客​座​端​作​業​系​統​的​安​裝​程​序​。​
  1. 選​擇 PXE

    選​擇​「​PXE」​作​為​安​裝​方​法​。​
  2. 選​擇​橋​接​裝​置​

    選​擇​「​共​享​實​體​裝​置​」​,然​後​選​擇​之​前​步​驟​裡​出​現​的​橋​接​裝​置​。​
  3. 開​始​安​裝​

    安​裝​程​序​已​經​準​備​好​,可​以​啟​動​。​
DHCP 需​求​已​經​送​出​,如​果​找​到 PXE 伺​服​器​,客​座​端​的​安​裝​過​程​就​會​開​始​。​

章 3. 客​座​端​作​業​系​統​的​安​裝​程​序​

本​章​涵​蓋​了​如​何​在 Fedora 上​的​虛​擬​環​境​中​,安​裝​各​種​客​座​作​業​系​統​的​方​法​。​要​了​解​基​本​程​序​,請​參​閱 章 2, 虛​擬​化​客​座​端​安​裝​總​覽​。​

3.1. 將 Red Hat Enterprise Linux 5 安​裝​為​半​虛​擬​化​的​客​座​端​

此​部​份​描​述​了​如​何​將 Red Hat Enterprise Linux 5 安​裝​為​一​個​半​虛​擬​化​客​座​端​。​半​虛​擬​化​的​速​度​比​完​整​虛​擬​化​還​要​快​,並​且​支​援​了​完​整​虛​擬​化​的​所​有​優​點​。​半​虛​擬​化​需​要​一​種​特​殊​、​受​支​援​的 Linux 核​心​,也​就​是 kernel-xen 核​心​。​

半​虛​擬​化​的​相​關​重​點​

半​虛​擬​化​只​能​和 Xen hypervisor 搭​配​使​用​。​半​虛​擬​化​無​法​和 KVM hypervisor 搭​配​使​用​。​
在​進​行​安​裝​前​,請​先​確​認​您​擁​有 root 權​限​。​
此​方​法​將​會​由​一​部​遠​端​伺​服​器​安​裝 Red Hat Enterprise Linux。​此​部​份​中​所​描​述​的​安​裝​指​示​和​透​過 Live CD 的​最​小​安​裝​類​似​。​
請​使​用 virt-manager 或​是 virt-install 來​建​立​半​虛​擬​化​的 Red Hat Enterprise Linux 5 客​座​端​。​欲​取​得 virt-manager 上​的​相​關​指​南​,請​參​閱 節 2.2, “透​過 virt-manager 來​建​立​客​座​端​” 中​的​程​序​。​
請​透​過​基​於​指​令​列​的 virt-install 工​具​來​建​立​半​虛​擬​化​客​座​端​。​--vnc 選​項​會​顯​示​圖​形​化​的​安​裝​程​序​。​範​例​中​的​客​座​端​名​稱​為 rhel5PV,磁​碟​映​像​檔​案​為 rhel5PV.dsk,而 Red Hat Enterprise Linux 5 安​裝​目​錄​的​本​機​鏡​像​為 ftp://10.1.1.1/trees/CentOS5-B2-Server-i386/。​請​根​據​您​系​統​與​網​路​的​實​際​狀​況​來​替​換​這​些​值​。​
# virt-install -n rhel5PV -r 500 \
-f /var/lib/libvirt/images/rhel5PV.dsk -s 3 --vnc -p \
-l ftp://10.1.1.1/trees/CentOS5-B2-Server-i386/

自​動​化​安​裝​程​序​

Red Hat Enterprise Linux 可​透​過​無​圖​形​化​介​面​或​手​動​式​輸​入​的​方​式​來​安​裝​。​請​使​用 Kickstart 檔​案​來​將​安​裝​程​序​自​動​化​。​
使​用​這​兩​種​方​式​皆​會​出​現​此​視​窗​,它​會​顯​示​您​客​座​端​的​初​始​啟​動​階​段​:
當​您​的​客​座​端​完​成​了​它​的​初​始​啟​動​階​段​後​,Red Hat Enterprise Linux 的​標​準​安​裝​程​序​便​會​開​始​。​對​於​大​部​分​的​系​統​來​說​,預​設​值​都​是​可​以​接​受​的​。​
過程 3.1. 半​虛​擬​化​的 Red Hat Enterprise Linux 客​座​端​安​裝​程​序​
  1. 請​選​擇​語​言​並​按​下​確​定​。​
  2. 請​選​擇​鍵​盤​格​式​並​按​下​確​定​。​
  3. 請​指​定​客​座​端​的​網​路​位​址​。​請​選​擇​使​用 DHCP(如​下​所​示​)或​是​靜​態 IP 位​址​:
  4. 若​您​選​擇​了 DHCP,安​裝​程​序​現​在​將​會​嘗​試​取​得​一​組 IP 位​址​:
  5. 若​您​為​您​的​客​座​端​選​擇​了​靜​態​的 IP 位​址​,此​提​示​便​會​出​現​。​請​在​客​座​端​的​網​路​作​業​設​定​上​輸​入​詳​細​資​訊​:
    1. 請​輸​入​一​組​有​效​的 IP 位​址​。​請​確​認​您​所​輸​入​的 IP 位​址​可​連​上​含​有​安​裝​樹​的​伺​服​器​。​
    2. 請​輸​入​一​組​有​效​的​子​網​路​遮​罩​、​預​設​閘​道​器​和​名​稱​伺​服​器​位​址​。​
    請​選​擇​語​言​並​按​下​確​定​。​
  6. 下​列​為​一​組​靜​態 IP 位​址​設​定​的​範​例​:
  7. 安​裝​程​序​現​在​將​會​由​伺​服​器​擷​取​它​所​需​要​的​檔​案​:
一​旦​初​始​步​驟​完​成​後​,圖​形​化​安​裝​程​序​便​會​啟​動​。​
若​您​正​在​安​裝​的​是 Beta 版​或​是​較​早​發​佈​的​發​行​版​,請​確​認​您​是​否​真​的​希​望​安​裝​該​作​業​系​統​。​請​按​下​「​照​樣​安​裝​」​,然​後​按​下​「​確​定​」​:
過程 3.2. 圖​形​化​安​裝​程​序​
  1. 請​輸​入​一​組​有​效​的​註​冊​碼​。​若​您​擁​有​一​組​有​效​的 RHN 訂​閱​金​鑰​,請​將​它​輸​入​在​「​安​裝​號​碼​」​欄​位​中​:

    Note

    若​您​跳​過​此​步​驟​的​話​,您​可​透​過​使​用 rhn_register 指​令​,在​安​裝​完​成​過​後​確​認​您​的 Red Hat Network 帳​號​詳​情​。​使​用 rhn_register 指​令​將​需​要 root 存​取​權​限​。​
    # rhn_register
    
  2. 安​裝​程​序​現​在​會​要​您​確​認​,是​否​希​望​刪​除​要​進​行​安​裝​的​儲​存​裝​置​上​的​資​料​:
    請​按​下​「​確​定​」​來​繼​續​進​行​。​
  3. 請​檢​視​儲​存​設​定​和​分​割​區​配​置​。​若​您​希​望​使​用 iSCSI 作​為​客​座​端​儲​存​裝​置​,您​亦​可​選​擇​選​取​進​階​的​儲​存​設​定​:
    請​進​行​您​要​的​選​擇​並​按​下​「​下​一​步​」​。​
  4. 確​認​您​所​選​用​來​進​行​安​裝​的​儲​存​裝​置​。​
    請​按​下​「​確​定​」​來​繼​續​進​行​。​
  5. 設​定​網​路​作​業​以​及​主​機​的​組​態​設​定​。​這​些​設​定​將​會​與​您​先​前​在​安​裝​程​序​中​所​輸​入​的​資​料​集​結​。​請​依​照​需​求​來​更​改​這​些​設​定​:
    請​按​下​「​確​定​」​來​繼​續​進​行​。​
  6. 選​擇​適​合​您​環​境​的​適​當​時​區​。​
  7. 為​您​的​客​座​端​輸​入 root 密​碼​。​
    請​按​下​「​下​一​步​」​來​繼​續​進​行​。​
  8. 請​選​擇​您​要​安​裝​的​軟​體​套​件​。​請​選​擇​「​現​在​自​訂​」​按​鈕​。​您​必​須​在​「​系​統​」​目​錄​中​安​裝 kernel-xen 套​件​。​您​必​須​安​裝 kernel-xen 套​件​才​可​使​用​半​虛​擬​化​。​
    請​按​下​「​下​一​步​」​。​
  9. 計​算​相​依​性​和​空​間​需​求​。​
  10. 當​套​件​的​相​依​性​和​空​間​需​求​都​經​過​驗​證​後​,請​按​下​「​下​一​步​」​來​啟​動​實​際​的​安​裝​。​
  11. 所​有​選​擇​的​軟​體​套​件​都​會​被​自​動​安​裝​。​
  12. 安​裝​完​成​後​,請​重​新​啟​動​您​的​客​座​端​:
  13. 您​新​安​裝​的​客​座​端​不​會​重​新​啟​動​,它​將​會​關​閉​...
  14. 啟​動​客​座​端​。​當​您​在 節 3.1, “將 Red Hat Enterprise Linux 5 安​裝​為​半​虛​擬​化​的​客​座​端​” 中​使​用 virt-install 時​,客​座​端​的​名​稱​就​已​被​選​取​。​若​您​使​用​了​預​設​的​範​例​,那​麼​這​組​名​稱​便​是 rhel5PV。​
    執​行​:
    virsh reboot rhel5PV
    
    此​外​,您​亦​可​開​啟 virt-manager、​選​擇​您​客​座​端​的​名​稱​、​按​下​「​開​啟​」​,然​後​按​下​「​執​行​」​。​
    現​在​將​會​有​個​顯​示​了​客​座​端​啟​動​程​序​的 VNC 視​窗​出​現​。​
  15. 啟​動​客​座​端​時​將​會​開​啟​First Boot(首​次​啟​動​)的​設​定​畫​面​。​此​精​靈​會​提​示​您​完​成​一​些​客​座​端​的​基​本​組​態​設​定​選​項​。​
  16. 首​先​請​詳​讀​並​接​受​使​用​條​款​。​
    請​按​下​使​用​條​款​視​窗​上​的​「​下​一​步​」​按​鈕​。​
  17. 設​定​防​火​牆​。​
    Click Forward to continue.
    1. 若​您​選​擇​了​停​用​防​火​牆​並​且​被​提​示​進​行​確​認​的​話​,請​按​下​確​定​來​再​次​確​認​並​繼​續​進​行​。​
  18. 設​定 SELinux。​我​們​強​烈​建​議​您​讓 SELinux 以​「​強​制​模​式​」​執​行​。​您​可​選​擇​讓 SELinux 以​「​寬​容​模​式​」​來​執​行​或​是​將​它​完​全​停​用​。​
    Click Forward to continue.
    1. 若​您​選​擇​停​用 SELinux 的​話​,這​個​警​告​畫​面​便​會​出​現​。​請​按​下​「​確​定​」​來​停​用 SELinux。​
  19. 視​需​求​啟​用 kdump。​
    Click Forward to continue.
  20. 請​確​認​您​為​您​的​客​座​端​所​設​的​時​間​與​日​期​是​否​正​確​。​若​您​安​裝​了​一​個​半​虛​擬​化​的​客​座​端​,時​間​和​日​期​會​和 hypervisor 同​步​化​。​
    Click Forward to continue.
  21. 設​定​軟​體​更​新​。​若​您​擁​有​一​個 Fedora Network 訂​閱​或​是​希​望​先​試​用​的​話​,您​可​透​過​使​用​以​下​畫​面​來​將​您​新​安​裝​的​客​座​端​註​冊​至 RHN 中​。​
    Click Forward to continue.
    1. 請​確​認​您 RHN 的​選​擇​。​
    2. 當​設​定​完​成​後​,若​您​在​此​退​出 RHN 的​話​,您​便​會​再​看​見​一​個​畫​面​。​您​將​不​會​收​到​任​何​軟​體​更​新​。​
      請​按​下​「​下​一​步​」​按​鈕​。​
  22. 建​立​一​組​非 root 的​使​用​者​帳​號​。​我​們​建​議​您​建​立​一​組​非 root 的​使​用​者​帳​號​,用​於​一​般​環​境​中​,以​增​加​安​全​性​。​請​輸​入​使​用​者​名​稱​、​名​稱​與​密​碼​。​
    請​按​下​「​下​一​步​」​按​鈕​。​
  23. 若​偵​測​到​了​音​效​裝​置​而​您​需​要​音​效​的​話​,請​進​行​調​整​。​請​完​成​程​序​並​按​下​「​下​一​步​」​。​
  24. 您​可​由​光​碟​片​來​安​裝​任​何​額​外​的​軟​體​套​件​,您​可​在​此​畫​面​上​進​行​此​步​驟​。​一​般​我​們​不​建​議​在​此​安​裝​任​何​額​外​的​軟​體​,而​是​之​後​再​使​用 yum 來​新​增​軟​體​套​件​。​請​按​下​「​完​成​」​按​鈕​。​
  25. 客​座​端​現​在​將​會​設​置​任​何​您​改​變​過​的​設​定​並​繼​續​進​行​啟​動​程​序​。​
  26. Red Hat Enterprise Linux 5 的​登​入​畫​面​將​會​出​現​。​請​使​用​先​前​步​驟​中​所​建​立​的​使​用​者​名​稱​來​登​入​。​
  27. 您​現​在​已​成​功​地​安​裝​了​半​虛​擬​化​的 Red Hat Enterprise Linux 5 客​座​端​。​

3.2. 將 Red Hat Enterprise Linux 5 安​裝​為​完​整​虛​擬​化​的​客​座​端​

此​部​份​涵​蓋​了​如​何​安​裝​完​整​虛​擬​化​的 Red Hat Enterprise Linux 5 客​座​端​。​
過程 3.3. 請​使​用 virt-manager 來​建​立​一​個​完​整​虛​擬​化​的 Red Hat Enterprise Linux 5 客​座​端​
  1. Open virt-manager

    Start virt-manager. Launch the Virtual Machine Manager application from the Applications menu and System Tools submenu. Alternatively, run the virt-manager command as root.
  2. Select the hypervisor

    Select the hypervisor. If installed, select Xen or KVM. For this example, select KVM. Note that presently KVM is named qemu.
    若​您​還​未​連​至 hypervisor 的​話​,請​現​在​連​上​。​請​開​啟​「​檔​案​」​選​單​並​選​取​「​新​增​連​線​...」​選​項​。​詳​情​請​參​閱 節 16.1, “開​放​連​線​視​窗​”。​
    一​旦​選​擇​了 hypervisor 的​連​線​後​,您​便​可​使​用​「​新​增​」​按​鈕​了​。​請​按​下​此​「​新​增​」​按​鈕​。​
  3. Start the new virtual machine wizard

    Pressing the New button starts the virtual machine creation wizard.
    Press Forward to continue.
  4. Name the virtual machine

    請​為​您​的​虛​擬​客​座​端​提​供​一​組​名​稱​。​不​可​使​用​標​點​符​號​或​是​空​白​字​元​。​
    請​按​下​「​下​一​步​」​來​繼​續​進​行​。​
  5. Choose a virtualization method

    請​為​虛​擬​化​客​座​端​選​擇​虛​擬​化​方​式​。​請​注​意​,您​只​可​選​擇​一​種​虛​擬​化​方​式​。​若​您​先​前​選​擇​了 KVM 或 Xen 的​話​(步驟 4),您​就​必​須​使​用​您​所​選​擇​的 hypervisor。​此​範​例​使​用​了 KVM hypervisor。​
    請​按​下​「​下​一​步​」​來​繼​續​進​行​。​
  6. Select the installation method

    請​選​擇​本​機​安​裝​媒​介​(Local install media)來​從​一​片​光​碟​或 ISO 映​像​檔​進​行​安​裝​;選​擇​網​路​安​裝​目​錄​(Network install tree)以​透​過 HTTP、​FTP 或 NFS 伺​服​器​來​進​行​安​裝​;或​是​選​擇​網​路​開​機​(Network boot)來​由​一​個 PXE 伺​服​器​進​行​安​裝​。​
    請​將​「​作​業​系​統​類​型​」​設​為​「​Linux」​並​如​圖​所​示​,將​「​作​業​系​統​類​型​」​設​為​「​Red Hat Enterprise Linux 5」​。​
    請​按​下​「​下​一​步​」​來​繼​續​進​行​。​
  7. Locate installation media

    選​擇 ISO 映​像​檔​位​置​或​是 CD/DVD 光​碟​機​的​位​置​。​此​範​例​使​用​了​一​個 Red Hat Enterprise Linux 5 安​裝 DVD 的 ISO 映​像​檔​。​
    1. Press the Browse button.
    2. 請​尋​找 ISO 檔​案​的​位​置​並​選​取​該 ISO 映​像​檔​。​請​按​下​「​開​啟​」​來​確​認​您​的​選​擇​。​
    3. 檔​案​已​被​選​取​並​準​備​由​此​檔​案​進​行​安​裝​。​
      請​按​下​「​下​一​步​」​來​繼​續​進​行​。​

    Image files and SELinux

    當​使​用 ISO 映​像​檔​和​儲​存​裝​置​映​像​時​,我​們​建​議​您​使​用 /var/lib/libvirt/images/ 目​錄​。​任​何​其​它​的​位​置​可​能​將​需​要​額​外​的 SELinux 組​態​設​定​,詳​情​請​參​閱 節 7.1, “SELinux 和​虛​擬​化​”。​
  8. Storage setup

    請​指​定​一​個​實​體​儲​存​裝​置​(「​區​塊​裝​置​」​)或​是​基​於​檔​案​的​映​像​檔​(「​檔​案​」​)。​基​於​檔​案​的​映​像​檔​必​須​儲​存​在 /var/lib/libvirt/images/ 目​錄​中​。​請​為​您​的​虛​擬​化​客​座​端​指​定​足​夠​的​儲​存​空​間​。​請​為​您​的​虛​擬​客​座​端​以​及​任​何​它​所​需​要​的​應​用​程​式​指​定​足​夠​的​儲​存​空​間​。​
    請​按​下​「​下​一​步​」​來​繼​續​進​行​。​

    遷​移​此​客​座​端​

    進​行​即​時​與​離​線​遷​移​時​,客​座​端​必​須​安​裝​在​共​享​網​路​儲​存​裝​置​上​。​欲​取​得​更​多​有​關​於​如​何​為​客​座​端​設​定​共​享​儲​存​裝​置​上​的​相​關​資​訊​,請​參​閱 章 5, 共​享​儲​存​裝​置​和​虛​擬​化​。​
  9. Network setup

    Select either Virtual network or Shared physical device.
    The virtual network option uses Network Address Translation (NAT) to share the default network device with the virtualized guest. Use the virtual network option for wireless networks.
    The shared physical device option uses a network bond to give the virtualized guest full access to a network device.
    Press Forward to continue.
  10. Memory and CPU allocation

    The Allocate memory and CPU window displays. Choose appropriate values for the virtualized CPUs and RAM allocation. These values affect the host's and guest's performance.
    Virtualized guests require sufficient physical memory (RAM) to run efficiently and effectively. Choose a memory value which suits your guest operating system and application requirements. Windows Server 2008. Remember, guests use physical RAM. Running too many guests or leaving insufficient memory for the host system results in significant usage of virtual memory and swapping. Virtual memory is significantly slower causing degraded system performance and responsiveness. Ensure to allocate sufficient memory for all guests and the host to operate effectively.
    Assign sufficient virtual CPUs for the virtualized guest. If the guest runs a multithreaded application assign the number of virtualized CPUs it requires to run most efficiently. Do not assign more virtual CPUs than there are physical processors (or hyper-threads) available on the host system. It is possible to over allocate virtual processors, however, over allocating has a significant, negative affect on guest and host performance due to processor context switching overheads.
    Press Forward to continue.
  11. Verify and start guest installation

    請​驗​證​組​態​設​定​。​
    請​按​下​「​完​成​」​來​啟​動​客​座​端​安​裝​程​序​。​
  12. 安​裝 Linux

    請​完​成 Red Hat Enterprise Linux 5 安​裝​程​序​。​安​裝​程​序​涵​蓋​於​位​於 http://redhat.com/docs 的​《​Red Hat Enterprise Linux 安​裝​指​南​》​中​。​
已​安​裝​了​完​整​虛​擬​化​的 Red Hat Enterprise Linux 5 客​座​端​。​

3.3. 安​裝 Windows XP 客​座​端​為​完​整​的​虛​擬​化​客​座​端​

您​可​以​安​裝 Windows XP,使​其​成​為​完​整​虛​擬​化​的​客​座​端​。​本​節​描​述​了​如​何​在 Linux 上​安​裝 Windows XP 的​方​法​。​
在​進​行​這​步​驟​之​前​,請​確​定​您​擁​有 root 權​限​。​
  1. Starting virt-manager

    開​啟​應​用​程​式 > 系​統​工​具 > 虛​擬​機​器​管​理​員​。​連​上​主​機​(按​下​檔​案 > 開​啟​連​線​)。​按​下​「​新​的​」​按​鈕​以​建​立​新​的​虛​擬​機​器​。​
  2. 為​虛​擬​系​統​命​名​

    輸​入​「​系​統​名​稱​」​然​後​點​「​下​一​步​」​。​
  3. 選​擇​虛​擬​化​的​方​法​

    如​果​您​之​前​選​了 KVM 或 Xen(步​驟 步驟 1),您​就​必​須​使​用​之​前​所​選​的 hypervisor。​本​範​例​使​用​了 KVM hypervisor。​
    您​只​能​使​用​完​整​虛​擬​化​來​安​裝 Windows。​
  4. 選​擇​安​裝​方​法​

    這​畫​面​能​讓​您​指​定​安​裝​方​法​,以​及​作​業​系​統​的​類​型​。​
    要​用​光​碟​片​安​裝​,請​選​擇 Windows 安​裝​光​碟​所​在​的​裝​置​。​如​果​您​選​擇 「​ISO 映​像​檔​位​置​」​,請​輸​入 Windows 安​裝​映​像​檔​(.iso)的​路​徑​。​
    在​「​作​業​系​統​類​型​」​選​單​,選​擇​「​Windows」​,然​後​從​「​作​業​系​統​種​類​」​裡​,選​擇​「​Microsoft Windows XP」​。​
    此​章​節​中​不​涵​蓋 PXE 的​安​裝​程​序​。​
    Press Forward to continue.

    Image files and SELinux

    當​使​用 ISO 映​像​檔​和​儲​存​裝​置​映​像​時​,我​們​建​議​您​使​用 /var/lib/libvirt/images/ 目​錄​。​任​何​其​它​的​位​置​可​能​需​要​經​過​額​外​的 SELinux 組​態​設​定​,詳​情​請​參​閱 節 7.1, “SELinux 和​虛​擬​化​”。​
  5. The Assigning storage space window displays. Choose a disk partition, LUN or create a file based image for the guest storage.
    所​有​基​於​檔​案​的​客​座​端​映​像​檔​皆​儲​存​在 /var/lib/libvirt/images/ 目​錄​中​,這​就​是 Fedora 中​,基​於​檔​案​的​映​像​檔​的​常​規​。​其​它​目​錄​皆​會​被 SELinux 所​禁​用​。​如​果​您​的 SELinux 是​處​於​強​制​(enforcing)模​式​,請​參​閱 節 7.1, “SELinux 和​虛​擬​化​” 以​取​得​安​裝​客​座​端​的​詳​細​資​訊​。​
    Your guest storage image should be larger than the size of the installation, any additional packages and applications, and the size of the guests swap file. The installation process will choose the size of the guest's swap file based on size of the RAM allocated to the guest.
    Allocate extra space if the guest needs additional space for applications or other data. For example, web servers require additional space for log files.
    Choose the appropriate size for the guest on your selected storage type and click the Forward button.

    注意

    針​對​於​虛​擬​機​器​映​像​,我​們​建​議​您​使​用​預​設​的​目​錄​,該​目​錄​為 /var/lib/libvirt/images/。​若​您​使​用​了​一​個​不​同​的​位​置​(比​方​說​在​此​範​例​中​為 /images/),請​確​認​該​位​置​已​被​加​入​至​您​的 SELinux 政​策​中​並​且​在​繼​續​進​行​安​裝​程​序​之​前​先​將​它​重​新​標​記​(之​後​,在​本​文​件​中​您​將​會​發​現​如​何​修​改​您 SELinux 政​策​的​相​關​資​訊​)。​
  6. Network setup

    Select either Virtual network or Shared physical device.
    The virtual network option uses Network Address Translation (NAT) to share the default network device with the virtualized guest. Use the virtual network option for wireless networks.
    The shared physical device option uses a network bond to give the virtualized guest full access to a network device.
    Press Forward to continue.
  7. The Allocate memory and CPU window displays. Choose appropriate values for the virtualized CPUs and RAM allocation. These values affect the host's and guest's performance.
    虛​擬​化​客​座​端​需​要​足​夠​的​記​憶​體​,才​能​有​效​率​地​執​行​。​請​選​擇​符​合​客​座​端​系​統​與​應​用​程​式​的​記​憶​體​大​小​。​請​記​得​,客​座​端​使​用​的​是​實​體​記​憶​體​。​執​行​太​多​客​座​端​,或​讓​主​系​統​的​剩​餘​記​憶​體​量​太​少​,都​會​導​致​大​量​使​用​虛​擬​記​憶​體​與​記​憶​體​置​換​。​虛​擬​記​憶​體​的​速​度​慢​,會​導​致​系​統​效​能​降​低​,回​應​變​慢​。​請​確​定​您​為​所​有​客​座​端​與​主​機​分​配​了​足​夠​的​記​憶​體​,好​讓​運​作​更​有​效​率​。​
    Assign sufficient virtual CPUs for the virtualized guest. If the guest runs a multithreaded application assign the number of virtualized CPUs it requires to run most efficiently. Do not assign more virtual CPUs than there are physical processors (or hyper-threads) available on the host system. It is possible to over allocate virtual processors, however, over allocating has a significant, negative affect on guest and host performance due to processor context switching overheads.
  8. 在​安​裝​繼​續​進​行​前​,您​將​會​看​見​摘​要​畫​面​。​請​按​下​「​完​成​」​來​繼​續​進​行​客​座​端​的​安​裝​程​序​:
  9. 因​為​您​需​要​選​擇​硬​體​,因​此​您​必​須​在​安​裝​啟​動​後​快​速​地​開​啟​一​個​主​控​台​視​窗​。​當​您​按​下​了​「​完​成​」​之​後​,請​切​換​到 virt-manager 的​摘​要​視​窗​,並​選​擇​您​新​啟​動​的 Windows 客​座​端​。​請​按​兩​下​系​統​名​稱​,這​之​後​會​開​啟​一​個​主​控​台​視​窗​。​請​快​速​地​按​下 F5 來​選​擇​一​個​新​的 HAL,當​您​看​見​了 Windows 安​裝​程​序​中​的​對​話​窗​格​,請​選​擇 Generic i486 Platform分​頁​(您​可​透​過​使​用​上​下​鍵​來​瀏​覽​選​項​)。​
  10. 安​裝​程​序​會​像​其​它​任​何​標​準 Windows 安​裝​程​序​一​般​地​進​行​。​
  11. 在​系​統​提​示​時​,為​硬​碟​製​作​分​割​區​。​
  12. 硬​碟​被​格​式​化​後​,Windows 便​會​開​始​將​檔​案​複​製​至​硬​碟​上​。​
  13. 檔​案​複​製​到​儲​存​裝​置​上​之​後​,Windows 會​重​新​啟​動​。​
  14. 重​新​啟​動 Windows 客​座​端​:
    # virsh start WindowsGuest
    
    其​中 WindowsGuest 是​虛​擬​機​器​的​名​稱​。​
  15. 主​控​台​視​窗​出​現​時​,您​會​看​到​安​裝 Windows 的​設​定​階​段​。​
  16. 若​您​的​安​裝​程​序​在​設​定​階​段​看​似​卡​住​的​話​,您​可​透​過 virsh reboot WindowsGuestName 指​令​來​將​虛​擬​機​器​重​新​啟​動​。​這​一​般​會​使​安​裝​程​序​繼​續​進​行​。​當​您​重​新​啟​動​虛​擬​機​器​時​,您​將​會​看​見​一​則 Setup is being restarted 的​訊​息​:
  17. 設​定​完​成​後​,您​將​會​看​見 Windows 的​啟​動​畫​面​:
  18. 現​在​,您​可​繼​續​進​行​您 Windows 安​裝​程​序​的​標​準​設​定​:
  19. 設​定​過​程​已​經​完​成​,畫​面​會​顯​示 Windows 桌​面​。​

3.4. 安​裝 Windows Server 2003 為​完​整​的​虛​擬​化​客​座​端​

本​章​描​述​了​如​何​使​用 virt-install 指​令​,來​安​裝 Windows Server 2003 的​完​整​虛​擬​化​客​座​端​。​virt-install 可​以​用​來​代​替 virt-manager。​這​項​程​序​與 節 3.3, “安​裝 Windows XP 客​座​端​為​完​整​的​虛​擬​化​客​座​端​” 中​所​涵​蓋​的 Windows XP 安​裝​方​法​類​似​。​
  1. 請​使​用 virt-install 來​安​裝 Windows Server 2003,Windows 客​座​端​的​主​控​台​會​開​啟 virt-viewer 視​窗​。​使​用 virt-install 來​安​裝 Windows Server 2003 客​座​端​的​範​例​為​:
    使​用 virt-install 指​令​來​安​裝​。​
    # virt-install -hvm -s 5 -f /var/lib/libvirt/images/windows2003spi1.dsk \
    -n windows2003sp1 -cdrom=/ISOs/WIN/en_windows_server_2003_sp1.iso  \
    -vnc -r 1024
    
  2. 一​旦​客​座​端​進​入​安​裝​程​序​後​,您​需​要​趕​快​按​下 F5。​如​果​您​沒​有​在​一​定​時​間​內​按​下 F5,您​必​須​重​新​啟​動​安​裝​程​序​。​按​下 F5 之​後​,您​可​以​則​不​同​的​「​HAL」​或​「​電​腦​類​型​」​。​請​選​擇​「​標​準 PC」​作​為​您​的​電​腦​類​型​,這​是​唯​一​所​需​要​的​非​標​準​步​驟​。​
  3. 完​成​其​他​的​安​裝​步​驟​。​
  4. Windows 2003 現​在​已​經​被​安​裝​為​完​整​虛​擬​化​的​客​座​端​。​

3.5. 安​裝 Windows Server 2008 為​完​整​的​虛​擬​化​客​座​端​

本​節​涵​蓋​了​安​裝 Windows Server 2008 完​整​虛​擬​化​客​座​端​的​內​容​。​
過程 3.4. 使​用 virt-manager 來​安​裝 Windows Server 2008
  1. Open virt-manager

    Start virt-manager. Launch the Virtual Machine Manager application from the Applications menu and System Tools submenu. Alternatively, run the virt-manager command as root.
  2. Select the hypervisor

    Select the hypervisor. If installed, select Xen or KVM. For this example, select KVM. Note that presently KVM is named qemu.
    選​取​好​選​項​後​,「​新​的​」​按​鈕​就​會​變​成​可​點​選​狀​態​。​請​按​下​「​新​的​」​按​鈕​。​
  3. Start the new virtual machine wizard

    Pressing the New button starts the virtual machine creation wizard.
    Press Forward to continue.
  4. Name the virtual machine

    提​供​虛​擬​客​座​端​的​名​稱​,標​點​符​號​與​空​白​字​元​是​不​被​允​許​的​。​
    請​按​下​「​下​一​步​」​來​繼​續​進​行​。​
  5. Choose a virtualization method

    請​為​虛​擬​化​客​座​端​選​擇​虛​擬​化​方​法​。​請​注​意​,您​只​能​選​擇​一​種​已​安​裝​在​電​腦​上​的​虛​擬​化​方​法​。​如​果​您​之​前​在​步​驟​二​中​,選​擇​了 KVM 或 Xen,您​就​必​須​使​用​所​選​的 hypervisor。​這​範​例​使​用​了 KVM hypervisor。​
    請​按​下​「​下​一​步​」​來​繼​續​進​行​。​
  6. Select the installation method

    對​於​所​有​的 Windows 版​本​,您​必​須​使​用​「​本​地​安​裝​媒​體​」​,也​就​是 ISO 映​像​檔​或​實​際​的​光​碟​片​。​
    如​果​您​有 PXE 伺​服​器​,也​安​裝​了 Windows 的​網​路​安​裝​功​能​,PXE 就​可​以​運​作​。​使​用 PXE 來​安​裝 Windows 並​不​包​含​在​本​手​冊​中​。​
    將​「​作​業​系​統​類​型​」​設​為​「​Windows」​;「​作​業​系​統​種​類​」​設​為​「​Microsoft Windows 2008」​,如​圖​所​示​。​
    請​按​下​「​下​一​步​」​來​繼​續​進​行​。​
  7. Locate installation media

    選​擇 ISO 映​像​檔​的​位​置​,或​光​碟​機​。​這​範​例​使​用​的​是 Windows Server 2008 安​裝​光​碟​的 ISO 映​像​檔​。​
    1. Press the Browse button.
    2. 搜​尋 ISO 檔​案​的​位​置​,然​後​選​擇​這​檔​案​。​
      按​下​「​開​啟​」​來​確​定​您​的​選​擇​。​
    3. 這​檔​案​已​經​被​選​取​,可​以​用​來​安​裝​。​
      請​按​下​「​下​一​步​」​來​繼​續​進​行​。​

    Image files and SELinux

    對​於 ISO 映​像​檔​與​儲​存​映​像​檔​來​說​,我​們​建​議​您​放​在 /var/lib/libvirt/images/ 目​錄​中​。​任​何​其​它​位​置​都​需​要​經​過​額​外​設​定 SELinux,詳​情​請​參​閱 節 7.1, “SELinux 和​虛​擬​化​”。​
  8. Storage setup

    指​定​實​體​的​儲​存​裝​置​(區​塊​裝​置​)或​檔​案​類​型​的​映​像​檔​(檔​案​)。​後​者​必​須​儲​存​在 /var/lib/libvirt/images/ 目​錄​裡​。​請​為​虛​擬​化​客​座​端​與​其​所​需​的​應​用​程​式​,指​定​足​夠​的​儲​存​空​間​。​
    請​按​下​「​下​一​步​」​來​繼​續​進​行​。​
  9. Network setup

    Select either Virtual network or Shared physical device.
    The virtual network option uses Network Address Translation (NAT) to share the default network device with the virtualized guest. Use the virtual network option for wireless networks.
    The shared physical device option uses a network bond to give the virtualized guest full access to a network device.
    Press Forward to continue.
  10. Memory and CPU allocation

    The Allocate memory and CPU window displays. Choose appropriate values for the virtualized CPUs and RAM allocation. These values affect the host's and guest's performance.
    Virtualized guests require sufficient physical memory (RAM) to run efficiently and effectively. Choose a memory value which suits your guest operating system and application requirements. Windows Server 2008. Remember, guests use physical RAM. Running too many guests or leaving insufficient memory for the host system results in significant usage of virtual memory and swapping. Virtual memory is significantly slower causing degraded system performance and responsiveness. Ensure to allocate sufficient memory for all guests and the host to operate effectively.
    Assign sufficient virtual CPUs for the virtualized guest. If the guest runs a multithreaded application assign the number of virtualized CPUs it requires to run most efficiently. Do not assign more virtual CPUs than there are physical processors (or hyper-threads) available on the host system. It is possible to over allocate virtual processors, however, over allocating has a significant, negative affect on guest and host performance due to processor context switching overheads.
    Press Forward to continue.
  11. Verify and start guest installation

    檢​查​設​定​。​
    請​按​下​「​完​成​」​按​鈕​,來​啟​動​客​座​端​的​安​裝​程​序​。​
  12. 安​裝 Windows

    完​成 Windows Server 2008 的​安​裝​步​驟​。​這​安​裝​步​驟​並​不​包​含​在​本​手​冊​中​。​請​參​閱​微​軟​的​文​件​,以​得​知​安​裝 Windows 的​相​關​資​訊​。​

部 II. Configuration

在 Fedora 中​配​置​虛​擬​化​功​能​

這​些​章​節​涵​蓋​了​多​種​進​階​虛​擬​工​作​的​設​定​步​驟​。​這​些​工​作​包​括​新​增​網​路​與​儲​存​裝​置​、​進​階​安​全​性​設​定​、​改​進​效​能​、​以​及​在​完​整​虛​擬​化​客​座​端​裡​使​用​半​虛​擬​化​的​驅​動​程​式​。​

章 4. 虛​擬​化​的​區​塊​裝​置​

本​章​節​涵​蓋​了​虛​擬​客​座​端​中​的​區​塊​裝​置​安​裝​與​配​置​。​區​塊​裝​置​這​個​名​詞​代​表​各​種​類​型​的​儲​存​裝​置​。​

4.1. 建​立​虛​擬​化​軟​碟​控​制​器​

有​些​較​舊​的​作​業​系​統​需​要​用​到​軟​碟​控​制​器​,特​別​是​用​來​安​裝​驅​動​程​式​時​。​目​前​,實​體​軟​碟​裝​置​無​法​藉​由​虛​擬​化​客​座​端​來​存​取​。​然​而​,由​虛​擬​化​軟​碟​驅​動​程​式​來​建​立​、​存​取​磁​碟​片​映​像​檔​的​功​能​,卻​是​支​援​的​。​此​部​份​涵​蓋​了​如​何​建​立​虛​擬​化​軟​碟​裝​置​的​相​關​資​訊​。​
需​要​軟​碟​映​像​檔​。​請​以 dd 指​令​來​建​立​磁​碟​片​映​像​檔​。​請​將 /dev/fd0 取​代​為​磁​碟​片​裝​置​的​名​稱​並​適​當​地​為​磁​碟​片​命​名​。
# dd if=/dev/fd0 of=~/legacydrivers.img

半​虛​擬​化​驅​動​程​式​備​註​

半​虛​擬​化​驅​動​程​式​可​將​實​體​磁​碟​片​裝​置​映​射​至​完​整​虛​擬​化​的​客​座​端​上​。​
此​範​例​所​使​用​的​客​座​端​,是​在​執​行​完​整​虛​擬​化​的 Linux 上​執​行 virt-manager 所​建​立​的​,它​的​映​像​檔​位​於 /var/lib/libvirt/images/rhel5FV.img 中​。​範​例​中​使​用​了 Xen hypervisor。​
  1. 請​藉​由​在​運​作​中​的​客​座​端​上​執​行 virsh 指​令​,來​為​您​的​客​座​端​映​像​檔​建​立 XML 配​置​檔​案​。​
    # virsh dumpxml rhel5FV > rhel5FV.xml
    
    這​會​將​配​置​設​定​儲​存​為​一​個 XML 檔​案​,並​且​該​檔​案​能​被​編​輯​來​自​訂​化​客​座​端​所​使​用​的​作​業​與​裝​置​。​欲​取​得​更​多​有​關​於​使​用 virsh XML 配​置​檔​案​上​的​相​關​資​訊​,請​參​閱 章 18, 建​立​自​訂​化​的 libvirt script。​
  2. 為​客​座​端​建​立​磁​碟​片​映​像​。​
    # dd if=/dev/zero of=/var/lib/libvirt/images/rhel5FV-floppy.img bs=512 count=2880
    
  3. 請​附​加​下​列​內​容​至​您​客​座​端​的​組​態​設​定 XML 檔​案​中​,並​進​行​適​當​的​修​改​。​此​範​例​會​建​立​一​個​含​有​磁​碟​片​裝​置​的​客​座​端​,來​作​為​基​於​檔​案​的​虛​擬​裝​置​。​
    <disk type='file' device='floppy'>
            <source file='/var/lib/libvirt/images/rhel5FV-floppy.img'/>
            <target dev='fda'/>
    </disk>
    
  4. 停​用​客​座​端​。​
    # virsh stop rhel5FV
    
  5. 透​過​使​用 XML 配​置​檔​案​來​重​新​啟​動​客​座​端​。​
    # virsh create rhel5FV.xml
    
客​座​端​中​現​在​已​可​使​用​磁​碟​片​裝​置​,並​且​會​以​映​像​檔​的​方​式​,儲​存​在​主​機​上​。​

4.2. 在​客​座​端​上​新​增​儲​存​裝​置​

此​部​份​涵​蓋​了​如​何​新​增​儲​存​裝​置​至​虛​擬​客​座​端​上​。​額​外​的​儲​存​裝​置​只​能​在​客​座​端​建​立​後​才​可​被​新​增​。​受​支​援​的​儲​存​裝​置​與​協​定​包​含​:
  • 本​機​硬​碟​分​割​區​、​
  • 本​機​卷​冊​、​
  • 直​接​連​至​主​機​的​光​纖​通​道​或​是 iSCSI。​
  • 位​於​主​機​上​的​檔​案​系​統​中​的​檔​案​容​器​(file container)。​
  • NFS 檔​案​系​統​會​被​虛​擬​機​器​直​接​地​掛​載​。​
  • iSCSI 儲​存​裝​置​會​被​客​座​端​直​接​地​存​取​。​
  • 叢​集​檔​案​系​統​(GFS)。​
新​增​一​個​基​於​檔​案​的​儲​存​裝​置​至​客​座​端​
基​於​檔​案​的​儲​存​裝​置​或​基​於​檔​案​的​容​器​(container)皆​為​主​機​檔​案​系​統​上​的​檔​案​,它​們​會​被​作​為​虛​擬​化​客​座​端​的​虛​擬​硬​碟​來​使​用​。​若​要​新​增​基​於​檔​案​的​容​器​,請​執​行​下​列​步​驟​:
  1. 建​立​一​個​空​的​容​器​檔​案​或​使​用​現​有​的​檔​案​容​器​(例​如 ISO 檔​案​)。​
    1. 請​使​用 dd 指​令​來​建​立​一​個 sparse 檔​案​。​基​於​資​料​完​整​性​以​及​效​能​上​的​考​量​,我​們​不​建​議​您​使​用 sparse 檔​案​。​Sparse 檔​案​可​快​速​地​建​立​,並​且​可​被​使​用​來​進​行​測​試​,不​過​不​該​使​用​於​生​產​環​境​中​。​
      # dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M seek=4096 count=0
      
    2. 建​議​使​用​非 sparse、​預​先​分​配​的​檔​案​,來​作​為​基​於​檔​案​的​儲​存​容​器​。​若​要​建​立​非 sparse 的​檔​案​,請​執​行​:
      # dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M count=4096
      
    這​兩​項​指​令​皆​會​建​立​一​個 400MB 的​檔​案​,並​且​可​用​來​作​為​虛​擬​客​座​端​的​額​外​儲​存​裝​置​。​
  2. 傾​印​客​座​端​的​設​定​。​在​此​範​例​中​,客​座​端​稱​為 Guest1 並​且​檔​案​儲​存​在​使​用​者​的​家​目​錄​中​。​
    # virsh dumpxml Guest1 > ~/Guest1.xml
    
  3. 請​以​文​字​編​輯​器​開​啟​配​置​檔​案​(在​此​範​例​中​為 Guest1.xml),並​尋​找​以​「​disk=」​作​為​起​始​的​項​目​。​此​項​目​會​看​似​:
    >disk type='file' device='disk'<
            >driver name='tap' type='aio'/<
            >source file='/var/lib/libvirt/images/Guest1.img'/<
            >target dev='xvda'/<
    >/disk<
    
  4. 您​可​透​過​修​改 disk= 項​目​的​結​尾​部​份​來​新​增​額​外​的​儲​存​裝​置​。​請​確​認​您​已​為​虛​擬​區​塊​裝​置​指​定​了​一​組​在​該​配​置​檔​案​中​未​被​使​用​的​裝​置​名​稱​。​下​列​範​例​項​目​會​新​增​一​個​名​為 FileName.img、​並​用​來​作​為​基​於​檔​案​的​儲​存​容​器​的​檔​案​:
    >disk type='file' device='disk'<
            >driver name='tap' type='aio'/<
            >source file='/var/lib/libvirt/images/Guest1.img'/<
            >target dev='xvda'/<
    >/disk<
    >disk type='file' device='disk'<
            >driver name='tap' type='aio'/<
            >source file='/var/lib/libvirt/images/FileName.img'/<
            >target dev='hda'/<
    >/disk<
    
  5. 透​過​已​更​新​的​配​置​檔​案​來​重​新​啟​動​客​座​端​。​
    # virsh create Guest1.xml
    
  6. 以​下​為 Linux 客​座​端​特​屬​的​步​驟​。​其​它​作​業​系​統​會​以​不​同​的​方​式​來​處​理​新​的​儲​存​裝​置​。​若​您​所​使​用​的​是​非 Linux 的​系​統​,請​參​閱​您​的​客​座​端​作​業​系​統​文​件​。​
    客​座​端​現​在​使​用​了 FileName.img 這​個​檔​案​來​作​為​名​為 /dev/hdb 的​裝​置​。​此​裝​置​需​要​藉​由​客​座​端​來​格​式​化​。​在​客​座​端​上​,請​將​整​個​裝​置​分​割​為​一​個​主​要​分​割​區​,然​後​格​式​化​此​裝​置​。​
    1. 請​按​下 n 來​建​立​新​分​割​區​。​
      # fdisk /dev/hdb
      Command (m for help):
      
    2. 請​按​下 p 來​選​擇​主​要​分​割​區​。​
      Command action
         e   extended
         p   primary partition (1-4)
      
    3. 請​選​擇​可​用​的​分​割​區​號​碼​。​在​此​範​例​中​,第​一​個​分​割​區​可​藉​由​輸​入 1 來​選​取​。​
      分割區號碼(1-4):1
      
    4. 請​藉​由​按​下 Enter 來​輸​入​預​設​的​第​一​個​磁​柱​。​
      第一個磁柱(1-400、預設 1):
      
    5. 請​選​擇​分​割​區​的​大​小​。​在​此​範​例​中​,您​可​藉​由​按​下 Enter 來​分​配​整​個​磁​碟​。​
      最後的磁柱或是 +size 或 +sizeM 或 +sizeK(2-400,預設 400):
      
    6. 請​藉​由​按​下 t 來​設​定​分​割​區​類​型​。​
      Command (m for help): t
      
    7. 請​選​擇​您​在​先​前​步​驟​中​所​建​立​的​分​割​區​。​在​此​範​例​中​為​分​割​區 1。​
      分割區號碼(1-4):1
      
    8. Linux 分​割​區​請​輸​入 83。​
      Hex code(輸入 L 來列出編碼):83
      
    9. 將​變​更​寫​入​磁​碟​並​退​出​。​
      Command (m for help): w 
      Command (m for help): q
      
    10. 透​過 ext3 檔​案​系​統​來​格​式​化​新​的​分​割​區​。​
      # mke2fs -j /dev/hdb
      
  7. 將​磁​碟​掛​載​在​客​座​端​上​。
    # mount /dev/hdb1 /myfiles
    
客​座​端​現​在​已​有​了​額​外​的​虛​擬​化​、​基​於​檔​案​的​儲​存​裝​置​。​
新​增​硬​碟​與​其​它​區​塊​裝​置​至​客​座​端​上​
系​統​管​理​員​使​用​額​外​的​硬​碟​來​提​供​更​多​的​儲​存​空​間​,或​將​系​統​資​料​與​使​用​者​資​料​區​隔​開​來​。​過程 4.1, “新​增​實​體​區​塊​裝​置​至​虛​擬​化​客​座​端​上​” 這​項​程​序​描​述​了​如​何​將​主​機​上​的​硬​碟​新​增​至​虛​擬​化​客​座​端​上​。​
此​程​序​適​用​於​所​有​實​體​區​塊​裝​置​,這​包​括 CD-ROM、​DVD 以​及​磁​碟​片​裝​置​。​
過程 4.1. 新​增​實​體​區​塊​裝​置​至​虛​擬​化​客​座​端​上​
  1. 將​硬​碟​裝​置​實​體​連​接​至​主​機​上​。​如​果​預​設​上​,該​磁​碟​無​法​被​存​取​的​話​,請​設​定​主​機​。​
  2. 請​視​需​求​透​過 multipath 來​設​定​裝​置​以​及​主​機​上​的​一​致​性​。​
  3. 請​使​用 virsh attach 指​令​。​請​將 myguest 取​代​為​您​客​座​端​的​名​稱​,將 /dev/hdb1 取​代​為​欲​新​增​的​裝​置​,並​將 hdc 取​代​為​裝​置​在​客​座​端​上​的​位​置​。​hdc 必​須​是​一​組​未​被​使​用​的​裝​置​名​稱​。​若​是 Windows 客​座​端​的​話​請​使​用 hd* 標​記​,客​座​端​將​可​正​確​地​辨​識​裝​置​。​
    若​是 CD-ROM 或 DVD 裝​置​的​話​,請​附​加 --type hdd 參​數​至​指​令​。​
    若​是​磁​碟​片​裝​置​的​話​,請​附​加 --type floppy 參​數​至​指​令​。​
    # virsh attach-disk myguest /dev/hdb1 hdc --driver tap --mode readonly
    
  4. 客​座​端​現​在​在 Linux 或 D: 槽​(在 Windows 上​)已​有​了​一​個​名​為 /dev/hdb 的​新​硬​碟​裝​置​。​此​裝​置​可​能​會​需​要​格​式​化​。​

4.3. 配​置​持​續​性​儲​存​裝​置​

此​部​份​乃​針​對​於​使​用​了​外​部​或​網​路​儲​存​裝​置​(例​如​光​纖​頻​道​或​是 iSCSI)的​系​統​。​我​們​建​議​您​為​您​的​主​機​設​定​具​有​永​久​性​裝​置​名​稱​的​系​統​。​這​能​協​助​即​時​遷​移​(live migration)功​能​並​為​多​重​虛​擬​化​系​統​提​供​一​致​的​裝​置​名​稱​與​儲​存​裝​置​。​
通​用​唯​一​識​別​碼​(UUID)是​個​在​電​腦​計​算​環​境​中​辨​識​電​腦​與​裝​置​的​一​種​標​準​方​式​。​此​部​份​使​用​了 UUID 來​辨​識​了 iSCSI 或​光​纖​頻​道 LUN。​UUID 的​一​致​性​在​系​統​重​新​啟​動​、​斷​線​和​裝​置 swap 的​情​況​下​依​然​可​保​留​住​。​UUID 和​裝​置​上​的​標​籤​相​似​。​
沒​有​執​行 multipath 的​系​統​必​須​使​用 單​路​徑​設​定​。​執​行​了 multipath 的​系​統​可​使​用 多​路​徑​的​配​置​。​
單​路​徑​設​定​
這​項​程​序​透​過​了 udev 來​實​做​了 LUN 裝​置​的​持​續​性​。​請​只​針​對​未​使​用 multipath 的​主​機​進​行​這​項​程​序​。​
  1. 編​輯 /etc/scsi_id.config 檔​案​。​
    1. 請​確​認 options=-b 一​行​已​被​標​為​註​解​。
      # options=-b
      
    2. 新​增​下​列​一​行​:
      options=-g
      
      此​選​項​可​將 udev 設​定​為​假​設​所​有​連​接​的 SCSI 裝​置​都​會​回​傳​一​組 UUID。​
  2. 若​要​顯​示​某​個​裝​置​的 UUID,請​執​行 scsi_id -g -s /block/sd* 這​項​指​令​。​例​如​:
    # scsi_id -g -s /block/sd*
    3600a0b800013275100000015427b625e
    
    輸​出​可​能​會​和​上​述​範​例​有​所​不​同​。​輸​出​顯​示​了 /dev/sdc 裝​置​的 UUID。​
  3. 請​驗​證​透​過 scsi_id -g -s /block/sd* 指​令​所​得​到​的 UUID 輸​出​與​存​取​該​裝​置​的​電​腦​的 UUID 是​相​同​的​。​
  4. 建​立​一​項​裝​置​命​名​上​的​規​則​。​請​在 /etc/udev/rules.d 目​錄​中​建​立​一​個​名​為 20-names.rules 的​檔​案​。​請​將​新​的​規​則​新​增​至​此​檔​案​中​。​所​有​規​則​都​會​以​相​同​的​格​式​被​附​加​至​相​同​的​檔​案​中​。​規​則​的​格​式​如​下​:
    KERNEL="sd*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT=UUID, NAME=devicename
    
    請​將 UUIDdevicename 取​代​為​以​上​所​取​得​的 UUID,以​及​裝​置​的​名​稱​。​以​下​為​上​述​範​例​的​規​則​:
    KERNEL="sd*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT="3600a0b800013275100000015427b625e", NAME="rack4row16"
    
    udev daemon 現​在​會​為​規​則​中​的 UUID 搜​尋​所​有​名​為 /dev/sd* 的​裝​置​。​一​旦​符​合​的​裝​置​連​上​了​系​統​,該​裝​置​就​會​被​分​配​來​自​於​規​則​中​的​名​稱​。​UUID 為 3600a0b800013275100000015427b625e 的​裝​置​將​會​被​顯​示​為 /dev/rack4row16。​
  5. 將​此​行​附​加​至 /etc/rc.local
    /sbin/start_udev
    
  6. 請​將 /etc/scsi_id.config、​/etc/udev/rules.d/20-names.rules/etc/rc.local 檔​案​中​的​變​更​複​製​至​所​有​相​關​的​主​機​上​。​
    /sbin/start_udev
    
設​置​了​規​則​的​網​路​儲​存​裝​置​現​在​在​所​有​主​機​上​皆​有​一​致​的​名​稱​並​且​檔​案​已​被​更​新​。​這​代​表​您​可​藉​由​使​用​共​享​儲​存​裝​置​,在​主​機​之​間​進​行​客​座​端​的​遷​移​,並​且​客​座​端​能​夠​存​取​它​們​的​配​置​檔​案​中​的​儲​存​裝​置​。​
多​路​徑​的​配​置​
multipath 套​件​適​用​於​由​電​腦​至​儲​存​裝​置​含​有​超​過​一​個​實​體​路​徑​的​系​統​。​multipath 可​為​連​至 Linux 系​統​的​網​路​儲​存​裝​置​提​供​容​錯​(fault tolerance)、​錯​誤​移​轉​(fail-over)以​及​增​強​的​效​能​。​
若​要​在 multipath 的​環​境​下​實​做 LUN 的​持​續​性​的​話​,您​必​須​為​多​重​路​徑​裝​置​定​義​別​名​名​稱​。​所​有​儲​存​裝​置​都​有​一​組​作​為​別​名​名​稱​之​金​鑰​的 UUID。​請​透​過​使​用 scsi_id 指​令​來​辨​識​裝​置​的 UUIS。​
# scsi_id -g -s /block/sdc
Multipath 裝​置​將​會​被​建​立​在 /dev/mpath 目​錄​中​。​在​下​列​範​例​中​,有 4 個​裝​置​定​義​於 /etc/multipath.conf 中​:
multipaths { 
        multipath { 
        wwid                3600805f30015987000000000768a0019 
        alias                oramp1 
        } 
        multipath { 
        wwid                3600805f30015987000000000d643001a 
        alias                oramp2 
        } 
        mulitpath { 
        wwid                3600805f3001598700000000086fc001b 
        alias                oramp3 
        } 
        mulitpath { 
        wwid                3600805f300159870000000000984001c 
        alias                oramp4 
        } 
}
此​設​定​將​會​建​立​四​個 LUN,它​們​分​別​稱​為 /dev/mpath/oramp1、​/dev/mpath/oramp2、​/dev/mpath/oramp3/dev/mpath/oramp4。​一​旦​輸​入​之​後​,裝​置​的 WWID 至​它​們​新​名​稱​的​映​射​便​會​擁​有​永​續​性​。​

4.4. 新​增​虛​擬​化​的 CD-ROM 或 DVD 裝​置​至​客​座​端​上​

若​要​將​一​個 ISO 檔​案​附​加​至​正​在​線​上​的​客​座​端​的​話​,請​使​用 virsh 指​令​搭​配 attach-disk 參​數​。​
# virsh attach-disk [domain-id] [source] [target] --driver file --type cdrom --mode readonly
sourcetarget 的​參​數​為​相​應​的​主​機​和​客​座​端​上​的​檔​案​與​裝​置​路​徑​。​source 參​數​可​以​是 ISO 檔​案​的​路​徑​,或​是​來​自​於 /dev 目​錄​的​裝​置​之​路​徑​。​

章 5. 共​享​儲​存​裝​置​和​虛​擬​化​

本​章​節​涵​蓋​了​在 Fedora 上​搭​配​使​用​虛​擬​化​與​共​享​、​網​路​儲​存​裝​置​上​的​相​關​資​訊​。​
虛​擬​化​支​援​下​列​方​式​:
  • Fibre Channel
  • iSCSI
  • NFS
  • GFS2
即​時​與​離​線​的​客​座​端​遷​移​將​需​要​網​路​儲​存​裝​置​。​您​必​須​要​擁​有​共​享​儲​存​裝​置​才​可​進​行​客​座​端​遷​移​。​

5.1. 使​用 iSCSI 來​儲​存​客​座​端​

此​部​份​涵​蓋​了​如​何​使​用​基​於 iSCSI 的​裝​置​,來​儲​存​虛​擬​化​客​座​端​的​相​關​資​訊​。​

5.2. 使​用 NFS 來​儲​存​客​座​端​

此​部​份​涵​蓋​了​如​何​使​用 NFS,來​儲​存​虛​擬​化​客​座​端​的​相​關​資​訊​。​

5.3. 使​用 GFS2 來​儲​存​客​座​端​

此​部​份​涵​蓋​了​如​何​使​用 Fedora 的 Global File System 2(GFS2),來​儲​存​虛​擬​化​客​座​端​的​相​關​資​訊​。​

章 6. 良​好​的​伺​服​器​使​用​習​慣​

下​列​工​作​和​提​示​可​協​助​您​確​保​您 Fedora 伺​服​器​主​機​(dom0)的​安​全​性​和​可​靠​性​。​
  • 請​將 SELinux 設​為​強​制​(enforcing)模​式​。​您​可​透​過​執​行​以​下​指​令​來​完​成​此​動​作​。
    # setenforce 1
    
  • 請​將​任​何​不​必​要​的​服​務​移​除​或​停​用​(例​如 AutoFS、​NFS、​FTP、​HTTP、​NIS、​telnetd、​sendmail 等​等​)。​
  • 只​在​伺​服​器​上​新​增​最​低​限​度​的​使​用​者​帳​號​,用​於​管​理​伺​服​器​平​台​;並​移​除​不​必​要​的​使​用​者​帳​號​。​
  • 請​避​免​在​您​的​主​機​上​執​行​任​何​非​必​要​的​應​用​程​式​。​在​主​機​上​執​行​應​用​程​式​可​能​會​影​響​虛​擬​機​器​的​效​能​以​及​伺​服​器​的​穩​定​性​。​任​何​會​使​伺​服​器​停​止​運​作​的​應​用​程​式​,也​會​造​成​伺​服​器​上​所​有​虛​擬​機​器​被​停​用​。​
  • 請​為​虛​擬​機​器​和​映​像​檔​使​用​一​個​集​中​的​位​置​。​虛​擬​機​器​映​像​檔​應​儲​存​在 /var/lib/libvirt/images/ 下​。​若​您​的​虛​擬​機​器​映​像​檔​處​於​一​個​不​同​的​目​錄​中​,請​確​認​您​有​將​該​目​錄​附​加​至​您​的 SELinux 政​策​中​,並​在​啟​動​安​裝​程​序​之​前​將​它​重​新​標​記​。​
  • 安​裝​來​源​、​安​裝​樹​和​映​像​檔​都​應​儲​存​在​一​個​集​中​的​位​置​上​,這​通​常​會​是​您 vsftpd 伺​服​器​的​位​置​。​

章 7. 虛​擬​化​的​安​全​性​

當​您​在​企​業​架​構​上​建​置​虛​擬​化​技​術​時​,請​確​認​主​機​不​會​受​到​危​害​。​Xen hypervisor 中​的​主​機​是​個​處​理​系​統​管​理​和​虛​擬​機​器​管​理​的​特​權​網​域​。​假​如​主​機​處​於​不​安​全​的​狀​態​下​,系​統​中​所​有​的​網​域​也​會​相​對​地​變​得​易​受​攻​擊​。​有​很​多​種​方​法​能​夠​提​升​虛​擬​化​的​系​統​安​全​性​。​您​或​您​的​組​織​應​該​建​立​一​份​「​建​置​計​劃​書​」​,這​裡​面​應​包​含​著​作​業​操​作​說​明​書​,並​指​定​您​的​虛​擬​客​座​端​和​主​機​伺​服​器​上​需​要​哪​些​服​務​,以​及​這​些​服​務​所​需​的​支​援​種​類​為​何​。​以​下​列​出​了​一​些​建​立​一​份​建​置​計​劃​書​時​,所​需​注​意​的​潛​在​安​全​性​問​題​:
  • 在​主​機​上​只​執​行​必​要​的​服​務​。​在​主​機​上​執​行​的​程​序​與​服​務​數​量​愈​少​,安​全​性​與​效​能​就​愈​高​。​
  • 請​在 hypervisor 上​啟​用 SELinux。​欲​取​得​更​多​有​關​於​使​用 SELinux 與​虛​擬​化​的​相​關​資​訊​,請​參​閱 節 7.1, “SELinux 和​虛​擬​化​”。​
  • 請​利​用​防​火​牆​來​限​制 dom0 的​流​量​。​您​能​夠​以​預​設​的​拒​絕​規​則​來​設​置​一​道​防​火​牆​,避​免 dom0 受​到​攻​擊​。​限​制​網​路​表​面​的​服​務​其​實​也​是​很​重​要​的​。​
  • 請​不​要​允​許​一​般​使​用​者​存​取 dom0。​假​如​您​允​許​一​般​使​用​者​存​取 dom0 的​話​,這​可​能​會​危​及 dom0 的​安​全​性​而​且​讓​它​變​得​易​遭​受​到​攻​擊​。​請​記​得​,dom0 是​有​特​權​的​,授​權​給​無​特​權​的​帳​號​極​可​能​會​造​成​危​害​並​且​降​低​安​全​性​。​

7.1. SELinux 和​虛​擬​化​

SELinux(安​全​性​增​強​的 Linux)是​經​由 NSA 與 Linux 社​群​的​協​助​所​開​發​的​,這​是​為​了​要​提​供​安​全​性​更​高​的 Linux 作​業​環​境​。​SELinux 可​防​止​外​部​攻​擊​,並​避​免​許​多​一​般​安​全​性​上​的​漏​洞​(例​如​緩​衝​區​溢​位​攻​擊​以​及​權​限​提​升​)。​基​於​這​些​原​因​,Fedora 建​議​所​有 Linux 系​統​都​應​啟​用 SELinux,並​開​啟​為​強​制​模​式​。​
若​啟​用​了 SELinux,它​可​避​免​客​座​端​映​像​檔​在​位​於​錯​誤​目​錄​中​的​情​況​下​被​載​入​。​SELinux 需​要​所​有​的​客​座​端​映​像​檔​儲​存​在 /var/lib/libvirt/images 中​。​
新​增​基​於 LVM 的​儲​存​裝​置​,並​啟​用 SELinux 強​制​模​式​
以​下​部​份​為​一​個​在​啟​用 SELinux 的​情​況​下​,將​邏​輯​卷​冊​新​增​至​虛​擬​客​座​端​的​範​例​。​這​些​指​示​也​適​用​於​硬​碟​分​割​區​。​
過程 7.1. 在​啟​用​了 SELinux 的​虛​擬​化​客​座​端​上​建​立​與​掛​載​邏​輯​卷​冊​
  1. 建​立​邏​輯​卷​冊​。​此​範​例​在​名​為 volumegroup 的​卷​冊​群​組​上​建​立​了​一​個 5GB 的​邏​輯​卷​冊​,名​為 NewVolumeName。​
    # lvcreate -n NewVolumeName -L 5G volumegroup
    
  2. 請​以​支​援​延​伸​屬​性​的​檔​案​系​統​(例​如 ext3)來​格​式​化 NewVolumeName 邏​輯​卷​冊​。​
    # mke2fs -j /dev/volumegroup/NewVolumeName
    
  3. 建​立​新​目​錄​來​掛​載​新​的​邏​輯​卷​冊​。​此​目​錄​能​夠​位​於​您​檔​案​系​統​中​的​任​何​位​置​上​。​建​議​您​不​要​將​它​放​置​在​重​要​的​系​統​目​錄​中​(/etc、​/var、​/sys)或​是​家​目​錄​中​(/home/root)。​此​範​例​使​用​了​一​個​名​為 /virtstorage 的​目​錄​。​
    # mkdir /virtstorage
    
  4. 掛​載​邏​輯​卷​冊​。​
    # mount /dev/volumegroup/NewVolumeName /virtstorage
    
  5. 為 Xen 資​料​夾​設​置​正​確​的 SELinux 類​型​。​
    semanage fcontext -a -t xen_image_t "/virtualization(/.*)?"
    
    另​外​,請​為 KVM 資​料​夾​設​置​正​確​的 SELinux 類​型​。​
    semanage fcontext -a -t virt_image_t "/virtualization(/.*)?"
    
    若​使​用​了​目​標​政​策​(目​標​政​策​為​預​設​政​策​)的​話​,這​項​指​令​便​會​附​加​一​行​至 /etc/selinux/targeted/contexts/files/file_contexts.local 檔​案​中​,這​將​可​保​留​變​更​的​一​致​性​。​附​加​的​一​行​看​似​:
    /virtstorage(/.*)?    system_u:object_r:xen_image_t:s0
    
  6. 請​執​行​這​項​指​令​來​將​掛​載​點​(/virtstorage)的​類​型​、​以​及​它​之​下​的​所​有​檔​案​更​改​為 xen_image_trestoreconsetfiles 會​讀​取 /etc/selinux/targeted/contexts/files/ 中​的​檔​案​)。​
    # restorecon -R -v /virtualization
    

7.2. SELinux 上​的​考​量​

此​部​份​包​含​了​當​您​將 SELinux 實​做​於​您​的​虛​擬​化​建​置​時​所​需​要​思​考​的​問​題​。​當​您​建​置​系​統​變​更​或​新​增​裝​置​時​,您​必​須​依​照​變​更​來​更​新​您​的 SElinux 政​策​。​若​要​為​客​座​端​設​定 LVM 卷​冊​時​,您​必​須​針​對​對​應​的​區​塊​裝​置​與​卷​冊​群​組​來​修​改 SELinux 的​內​容​。​
# semanage fcontext -a -t xen_image _t -f -b /dev/sda2
# restorecon /dev/sda2
xend_disable_t 這​個 boolean 參​數​可​被​用​來​在​重​新​啟​動 daemon 後​將 xend 設​定​為​自​由​模​式​(unconfined mode)。​建​議​您​不​要​將​目​錄​重​新​標​記​為​您​會​在​其​它​地​方​使​用​到​的 xen_image_t。​

章 8. 網​路​設​定​

本​頁​提​供​了​基​於 libvirt 的​應​用​程​式​的​一​般​網​路​作​業​設​定​上​的​簡​介​。​這​項​資​訊​適​用​於​所​有 hypervisor,無​論​是 Xen、​KVM 或​其​它 hypervisor。​欲​取​得​額​外​資​訊​,請​參​閱 libvirt 網​路​架​構​文​件​。​
兩​種​一​般​的​設​定​分​別​為​「​虛​擬​網​路​」​或​是​「​共​享​實​體​裝​置​」​。​前​者​在​所​有​發​行​版​上​皆​為​相​同​的​,並​且​經​過​安​裝​便​可​使​用​。​後​者​則​需​要​發​行​版​特​屬​的​手​動​式​設​定​。​

8.1. 使​用 libvirt 來​進​行​網​路​位​址​轉​譯​

最​常​被​使​用​來​共​享​網​路​連​線​的​方​式​,是​使​用​網​路​位​址​轉​譯​(NAT,Network address translation)來​轉​發​(亦​稱​為​虛​擬​網​路​)。​
主​機​設​定​
所​有​的 libvirt 標​準​安​裝​皆​會​為​新​安​裝​的​虛​擬​機​器​提​供​基​於 NAT 的​連​結​性​。​這​亦​稱​為​「​預​設​虛​擬​網​路​」​。​請​透​過 virsh net-list --all 指​令​來​驗​證​它​的​可​用​性​。​
# virsh net-list --all
Name                 State      Autostart 
-----------------------------------------
default              active     yes
若​您​找​不​到​這​個​檔​案​的​話​,您​可​重​新​載​入​並​啟​用 XML 配​置​檔​案​範​本​:
# virsh net-define /usr/share/libvirt/networks/default.xml
預​設​網​路​是​由 /usr/share/libvirt/networks/default.xml 來​定​義​的​
將​預​設​網​路​標​為​自​動​啟​動​:
# virsh net-autostart default
Network default marked as autostarted
啟​用​預​設​網​路​:
# virsh net-start default
Network default started
一​旦 libvirt 預​設​網​路​開​始​運​作​後​,您​將​會​看​見​一​個​孤​立​的​橋​接​裝​置​。​此​裝​置​沒​有​附​加​任​何​實​體​介​面​卡​,因​為​它​使​用​了 NAT 與 IP 轉​發​來​連​至​外​面​的​世​界​。​請​勿​新​增​介​面​卡​。​
# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.000000000000       yes
libvirt 會​新​增 iptables 規​則​以​允​許​來​自​於​客​座​端​以​及​至​客​座​端​的​流​量​,此​客​座​端​連​至​了 INPUT、​FORWARD、​OUTPUTPOSTROUTING chain 中​的 virbr0 裝​置​。​libvirt 接​著​便​會​嘗​試​啟​用 ip_forward 這​個​參​數​。​有​些​應​用​程​式​可​能​會​將 ip_forward 停​用​,因​此​最​好​的​作​法​就​是​將​下​列​一​行​附​加​至 /etc/sysctl.conf。​
net.ipv4.ip_forward = 1
客​座​端​設​定​
一​旦​主​機​設​定​完​成​後​,客​座​端​便​能​基​於​它​的​名​稱​來​連​至​虛​擬​網​路​。​若​要​將​客​座​端​連​至​「​預​設​」​虛​擬​網​路​,您​可​在​客​座​端​中​使​用​下​列 XML:
<interface type='network'>
  <source network='default'/>
</interface>

Note

您​不​一​定​要​定​義 MAC 位​址​。​若​不​定​義​的​話​,MAC 位​址​將​會​自​動​產​生​。​某​些​情​況​下​,手​動​設​定 MAC 位​址​會​相​當​有​幫​助​。​
<interface type='network'>
  <source network='default'/>
  <mac address='00:16:3e:1a:b3:4a'/>
  </interface>

8.2. 透​過 libvirt 來​進​行​橋​接​網​路​作​業​

橋​接​網​路​(亦​稱​為​實​體​裝​置​共​享​)是​用​來​將​實​體​裝​置​用​於​虛​擬​機​器​用​的​。​橋​接​通​常​用​在​較​為​進​階​的​設​定​、​以​及​擁​有​多​重​網​路​介​面​卡​的​伺​服​器​上​。​
停​用 Xen 網​路 script
若​您​的​系​統​是​使​用 Xen 橋​接​的​話​,我​們​建​議​您​透​過​編​輯 /etc/xen/xend-config.sxp 並​更​改​下​列​一​行​來​停​用​預​設​的 Xen 網​路​橋​接​:
(network-script network-bridge)
更​改​為​:
(network-script /bin/true)
停​用 NetworkManager(網​路​管​理​員​)
NetworkManager 並​不​支​援​橋​接​功​能​。​NetworkManager 必​須​被​停​用​,才​可​使​用​較​舊​的​網​路 script 網​路​作​業​。​
# chkconfig NetworkManager off
# chkconfig network on
# service NetworkManager stop
# service network start

Note

與​其​將 NetworkManager 關​閉​,您​可​將​「​NM_CONTROLLED=no」​附​加​至​使​用​於​範​例​中​的 ifcfg-* script。​
建​立​網​路 initscript
請​建​立​或​編​輯​下​列​的​兩​個​網​路​配​置​檔​案​。​這​項​步​驟​可​被​重​複​(使​用​不​同​名​稱​)來​進​行​額​外​的​網​路​橋​接​。​
更​換​為 /etc/sysconfig/network-scripts 目​錄​:
# cd /etc/sysconfig/network-scripts
請​開​啟​您​要​新​增​至​橋​接​的​裝​置​的​網​路 script。​在​此​範​例​中​,ifcfg-eth0 定​義​了​實​體​網​路​介​面​卡​,並​且​它​已​被​設​為​橋​接​的​一​部​分​。​
DEVICE=eth0
# change the hardware address to match the hardware address your NIC uses
HWADDR=00:16:76:D6:C9:45
ONBOOT=yes
BRIDGE=br0

提​示​

您​可​藉​由​將 MTU 變​數​附​加​至​配​置​檔​案​尾​端​,來​設​定​裝​置​的​最​大​傳​輸​單​元​(Maximum Transfer Unit,MTU)。​
MTU=9000
請​在 /etc/sysconfig/network-scripts 目​錄​中​,建​立​一​個​新​的​網​路 script,並​命​名​為 ifcfg-br0 或​類​似​名​稱​。​br0 為​橋​接​的​名​稱​,只​要​檔​案​名​稱​與 DEVICE 參​數​相​同​的​話​,這​組​名​稱​將​能​設​為​任​何​名​稱​。​
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0

Warning

The line, TYPE=Bridge, is case-sensitive. It must have uppercase 'B' and lower case 'ridge'.
在​設​定​完​成​後​,請​重​新​啟​用​網​路​作​業​或​重​新​開​機​。​
# service network restart
Configure iptables to allow all traffic to be forwarded across the bridge.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
# service iptables save
# service iptables restart

Disable iptables on bridges

Alternatively, prevent bridged traffic from being processed by iptables rules. In /etc/sysctl.conf append the following lines:
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
Reload the kernel parameters configured with sysctl
# sysctl -p /etc/sysctl.conf
Restart the libvirt daemon.
# service libvirtd reload
您​現​在​應​該​會​有​個​「​共​享​實​體​裝​置​」​,您​可​將​客​座​端​連​至​它​並​擁​有​完​整​的​區​域​網​路​存​取​權​限​。​請​驗​證​您​的​新​橋​接​裝​置​:
# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.000000000000       yes
br0             8000.000e0cb30550       no              eth0
請​注​意​,橋​接​和 virbr0 橋​接​是​完​全​獨​立​的​。​「​請​勿​」​嘗​試​將​實​體​裝​置​連​至 virbr0。​virbr0 橋​接​只​適​用​於​網​路​位​址​轉​譯​(NAT)連​結​性​。​

章 9. KVM 半​虛​擬​化​驅​動​程​式​

在 KVM 主​機​上​運​作​的​虛​擬 Windows 客​座​端​可​使​用​半​虛​擬​化​驅​動​程​式​。​這​些​半​虛​擬​化​驅​動​程​式​包​含​在 virtio 套​件​中​。​virtio 套​件​支​援​區​塊​(儲​存​)裝​置​以​及​網​路​介​面​控​制​卡​。​
半​虛​擬​化​驅​動​程​式​可​提​昇​完​整​虛​擬​化​客​座​端​的​效​能​。​當​使​用​半​虛​擬​化​驅​動​程​式​時​,客​座​端 I/O 延​遲​時​間​會​減​少​,並​且​總​處​理​能​力​會​提​昇​至​與​空​機​等​級​相​近​的​效​能​。​我​們​建​議​當​完​整​虛​擬​化​客​座​端​執​行​大​量 I/O 的​工​作​和​應​用​程​式​時​,使​用​半​虛​擬​化​驅​動​程​式​。​
KVM 半​虛​擬​化​驅​動​程​式​會​自​動​地​被​載​入​,並​安​裝​在​較​新​版​本​的 Fedora 上​。​這​些 Fedora 版​本​會​偵​測​並​安​裝​驅​動​程​式​,如​此​一​來​便​無​需​進​行​額​外​的​安​裝​步​驟​。​
就​和 KVM 模​組​一​樣​,virtio 驅​動​程​式​只​能​夠​在​執​行​較​新​版​的 Fedora 的​主​機​上​使​用​。​

Note

每​個​客​座​端​都​只​有 28 個​用​於​額​外​裝​置​的 PCI 插​槽​。​每​個​半​虛​擬​化​網​路​或​區​塊​裝​置​都​使​用​一​個​插​槽​。​各​個​客​座​端​皆​可​設​定 28 個​額​外​裝​置​(這​些​裝​置​可​以​是​任​何​半​虛​擬​化​網​路​、​半​虛​擬​化​磁​碟​裝​置​,或​是​其​它​使​用 VTd 的 PCI 裝​置​的​組​合​)。​
下​列 Microsoft Windows 版​本​支​援​了 KVM 半​虛​擬​化​驅​動​程​式​:
  • Windows XP、​
  • Windows Server 2003、​
  • Windows Vista 以​及​
  • Windows Server 2008。​

9.1. 安​裝 KVM Windows 半​虛​擬​化​驅​動​程​式​

此​部​份​涵​蓋​了 KVM Windows 半​虛​擬​化​驅​動​程​式​的​安​裝​程​序​。​KVM 半​虛​擬​化​驅​動​程​式​能​在 Windows 安​裝​程​序​進​行​時​載​入​,或​在​客​座​端​安​裝​完​成​後​進​行​安​裝​。​
您​可​利​用​以​下​其​中​一​項​方​式​,在​您​的​客​座​端​上​安​裝​半​虛​擬​化​驅​動​程​式​:
  • 在​一​個​客​座​端​可​存​取​的​網​路​上 host 安​裝​檔​案​,
  • 使​用​驅​動​程​式​安​裝​磁​碟​的​虛​擬 CD-ROM 裝​置 .iso 檔​案​,或​是​
  • 使​用​虛​擬​磁​片​裝​置​在​開​機​時​安​裝​驅​動​程​式​(適​用​於 Windows 客​座​端​)。​
本​指​南​描​述​了​如​何​將​半​虛​擬​安​裝​磁​碟​作​為​虛​擬​化​光​碟​裝​置​來​進​行​安​裝​。​
  1. 下​載​驅​動​程​式​

    這​些​驅​動​程​式​亦​可​藉​由 Microsoft(windowsservercatalog.com)取​得​。​
    virtio-win 套​件​會​在 /usr/share/virtio-win/ 目​錄​中​安​裝​一​個​光​碟​映​像​檔 virtio-win.iso。​
  2. 安​裝​半​虛​擬​化​驅​動​程​式​

    我​們​建​議​您​在​附​加​或​修​改​某​個​裝​置​,以​使​用​半​虛​擬​化​驅​動​程​式​前​,先​在​客​座​端​上​安​裝​驅​動​程​式​。​
    對​於​儲​存​區​塊​裝​置​的 root 檔​案​系​統​、​或​是​其​它​啟​動​客​座​端​所​需​的​區​塊​裝​置​來​說​,在​修​改​裝​置​之​前​必​須​先​安​裝​驅​動​程​式​。​若​驅​動​程​式​未​安​裝​在​客​座​端​上​並​且​驅​動​程​式​被​設​為 virtio 驅​動​程​式​的​話​,客​座​端​將​無​法​啟​動​。​
以 virt-manager 來​掛​載​映​像​檔​
請​依​照 過程 9.1, “若​是 Windows 客​座​端​的​話​請​使​用 virt-manager 來​掛​載​光​碟​映​像​檔​。​” 來​以 virt-manager 新​增​一​個​光​碟​映​像​檔​。​
過程 9.1. 若​是 Windows 客​座​端​的​話​請​使​用 virt-manager 來​掛​載​光​碟​映​像​檔​。​
  1. 開​啟 virt-manager,由​虛​擬​機​器​清​單​中​選​擇​您​的​虛​擬​客​座​端​,並​按​下​「​詳​細​資​訊​」​按​鈕​。​
  2. 請​在​「​詳​細​資​訊​」​面​板​中​點​選​「​新​增​」​按​鈕​。​
  3. 這​會​開​啟​一​個​用​來​新​增​裝​置​的​精​靈​視​窗​。​請​由​下​拉​式​選​單​中​選​取​「​儲​存​裝​置​」​,然​後​按​下​「​下​一​步​」​。
  4. 選​擇​「​檔​案​(磁​碟​映​像​檔​)」​選​項​並​設​定​半​虛​擬​化​驅​動​程​式 .iso 檔​案​的​檔​案​位​置​。​若​您​使​用​了 yum 來​安​裝​這​些​半​虛​擬​化​驅​動​程​式​套​件​的​話​,.iso 檔​案​的​位​置​就​會​是 /usr/share/xenpv-win。​
    若​驅​動​程​式​為​實​體​光​碟​的​話​,請​使​用​「​一​般​磁​碟​分​割​」​選​項​。​
    將​「​裝​置​類​型​」​設​為​「​IDE 光​碟​機​」​,並​按​下​「​下​一​步​」​來​繼​續​進​行​。
  5. 磁​碟​已​被​分​配​,一​旦​客​座​端​啟​動​時​便​可​使​用​於​客​座​端​上​。​請​按​下​「​完​成​」​來​關​閉​精​靈​,或​按​下​「​上​一​步​」​來​進​行​任​何​修​正​。
以​虛​擬​磁​碟​片​來​進​行​安​裝​
這​項​程​序​涵​蓋​了​如​何​在​進​行 Windows 安​裝​程​序​時​,安​裝​半​虛​擬​化​驅​動​程​式​。​
  • 在​第​一​次​安​裝 Windows VM 時​,請​使​用 run-once(單​次​執​行​)選​單​來​將 viostor.vfd 附​加​為​一​片​磁​碟​片​。​
    1. Windows Server 2003

      當 windows 提​示​您​按​下 F6 來​選​擇​第​三​方​驅​動​程​式​時​,請​按​下 F6,並​依​照​畫​面​上​的​步​驟​進​行​。​
    2. Windows Server 2008

      當​安​裝​程​式​提​示​您​選​擇​驅​動​程​式​時​,請​點​選​「​載​入​驅​動​程​式​」​,將​安​裝​程​式​指​向 A: 並​選​取​適​合​您​客​座​端​作​業​系​統​與​架​構​的​驅​動​程​式​。​
將 KVM 半​虛​擬​化​驅​動​程​式​使​用​於​現​有​的​裝​置​上​
使​用 virtio 驅​動​程​式​來​代​替​虛​擬​化 IDE 驅​動​程​式​,以​修​改​連​至​客​座​端​的​現​有​硬​碟​裝​置​。​此​範​例​編​輯​了 libvirt 配​置​檔​案​。​此​外​,virt-manager、​virsh attach-diskvirsh attach-interface 皆​可​透​過​使​用​半​虛​擬​化​驅​動​程​式 使​用 KVM 半​虛​擬​化​驅​動​程​式​於​新​裝​置​上​ 來​新​增​裝​置​。​
  1. 以​下​為​一​個​使​用​了​虛​擬​化 IDE 驅​動​程​式​、​基​於​檔​案​的​區​塊​裝​置​。​這​是​個​不​使​用​半​虛​擬​化​驅​動​程​式​的​虛​擬​化​客​座​端​的​典​型​項​目​。​
    <disk type='file' device='disk'>
       <source file='/var/lib/libvirt/images/disk1.img'/>
       <target dev='hda' bus='ide'/>
    </disk>
    
  2. 藉​由​將 bus= 項​目​更​改​為 virtio 來​使​用​半​虛​擬​化​裝​置​。​
    <disk type='file' device='disk'>
       <source file='/var/lib/libvirt/images/disk1.img'/>
       <target dev='hda' bus='virtio'/>
    </disk>
    
使​用 KVM 半​虛​擬​化​驅​動​程​式​於​新​裝​置​上​
本​程​序​涵​蓋​了​如​何​搭​配​使​用 KVM 半​虛​擬​化​驅​動​程​式​與 virt-manager 來​新​建​裝​置​。​
此​外​,virsh attach-diskvirsh attach-interface 指​令​皆​可​被​使​用​來​連​接​使​用​了​半​虛​擬​化​驅​動​程​式​的​裝​置​。​

首​先​安​裝​驅​動​程​式​

在​繼​續​進​行​新​裝​置​的​安​裝​前​,請​先​確​認​驅​動​程​式​已​安​裝​在 Windows 客​座​端​上​。​若​沒​有​驅​動​程​式​的​話​,裝​置​便​無​法​被​辨​識​並​且​將​無​法​運​作​。​
  1. 請​透​過​點​選 virt-manager 中​的​客​座​端​名​稱​,來​開​虛​擬​化​客​座​端​。​
  2. 開​啟​「​硬​體​」​分​頁​。​
  3. 按​下​「​新​增​硬​體​」​按​鈕​。​
  4. 請​在​「​新​增​虛​擬​硬​體​」​分​頁​中​,點​選​「​儲​存​裝​置​」​或​「​網​路​」​來​作​為​裝​置​類​型​。​
    1. 新​磁​碟​裝​置​
      請​選​擇​儲​存​裝​置​或​基​於​檔​案​的​映​像​檔​。​請​選​擇​「​Virtio 磁​碟​」​來​作​為​「​裝​置​類​型​」​並​按​下​「​下​一​步​」​。​
    2. 新​網​路​裝​置​
      請​選​擇​「​虛​擬​網​路​」​或​「​共​享​實​體​裝​置​」​。​請​選​擇​「​virtio」​來​作​為​「​裝​置​類​型​」​並​按​下​「​下​一​步​」​。​
  5. 請​按​下​「​完​成​」​來​儲​存​裝​置​。​
  6. 請​重​新​啟​動​客​座​端​。​裝​置​可​能​要​在​重​新​啟​用​後​,Windows 客​座​端​才​可​辨​識​。​

部 III. Administration

章 10. 使​用 xend 來​管​理​客​座​端​

xend 節​點​控​制 daemon 會​執​行​特​定​與​虛​擬​機​器​相​關​的​系​統​管​理​功​能​。​此 daemon 可​控​管​虛​擬​化​的​資​源​,而 xend 則​必​須​被​執​行​以​便​與​虛​擬​機​器​進​行​互​動​。​在​您​啟​用 xend 之​前​,您​必​須​經​由​修​改 xend 的​配​置​檔​案 /etc/xen/xend-config.sxp 來​指​定​作​業​參​數​。​下​列​為​能​在 xend-config.sxp 配​置​檔​案​中​啟​用​與​停​用​的​參​數​:
項​目​ Description
(console-limit)
測​定​主​控​台​伺​服​器​的​記​憶​體​緩​衝​限​制 xend_unix_server 並​以​單​一​網​域​的​準​則​來​指​定​數​值​。​
(min-mem)
測​定​預​留​給 domain0(如​果​輸​入​為 0,則​數​值​不​會​改​變​)的​最​小​數​值​(以 megabyte 為​單​位​)。​
(dom0-cpus)
測​定 domain0 所​使​用​的 CPU 數​量​(就​預​設​值​來​講​,至​少​會​有​一​個 CPU 被​指​定​)。​
(enable-dump)
在​發​生​當​機​時​啟​用​傾​印​(預​設​為 0)。​
(external-migration-tool)
測​定​用​來​對​應​外​部​裝​置​移​植​的 script 或​應​用​程​式​。​Script 必​須​置​於 /etc/xen/scripts/external-device-migrate 中​。​
(logfile)
決​定​日​誌​檔​案​的​位​置​(預​設​為​/var/log/xend.log)。​
(loglevel)
過​濾​記​錄​模​式​的​數​值​:DEBUG、​INFO、​WARNING、​ERROR 或 CRITICAL(預​設​值​為 DEBUG)。​
(network-script)
決​定​用​來​啟​用​網​路​環​境​的 script(該 script 必​須​置​於 /etc/xen/scripts 目​錄​中​)。​
(xend-http-server)
啟​用 http 串​流​封​包​管​理​伺​服​器​(預​設​值​為​停​用​)。​
(xend-unix-server)
啟​用 unix domain socket 伺​服​器​(這​伺​服​器​是​通​訊​終​點​,用​來​因​應​低​層​級​網​路​連​線​並​接​受​或​拒​絕​進​入​的​連​線​)。​預​設​值​為​啟​用​。​
(xend-relocation-server)
啟​用​重​置​的​伺​服​器​來​跨​主​機​移​植​(預​設​為​停​用​)。​
(xend-unix-path)
決​定 xend-unix-server 指​令​輸​出​資​料​的​位​置​(預​設​為 /var/lib/xend/xend-socket
(xend-port)
決​定 http 管​理​伺​服​器​所​使​用​的​通​訊​埠​(預​設​為 8000)。​
(xend-relocation-port)
決​定​重​置​伺​服​器​所​使​用​的​通​訊​埠​(預​設​為 8002)。​
(xend-relocation-address)
決​定​允​許​系​統​移​植​的​虛​擬​主​機​位​址​。​預​設​值​為 xend-address 的​值​。​
(xend-address)
決​定 domain socket 伺​服​器​所​綁​定​至​的​位​址​。​預​設​值​可​允​許​所​有​的​連​線​。​
表格 10.1. xend 配​置​參​數​

在​設​定​這​些​作​業​參​數​後​,您​應​該​確​認 xend 是​否​能​正​常​運​作​,若​沒​有​的​話​請​將 daemon 初​始​化​。​您​可​在​指​令​提​示​符​號​下​輸​入​下​列​指​令​來​啟​動 xend daemon:
service xend start
您​可​以​使​用 xend 來​停​止 daemon:
service xend stop
如​此​便​會​停​止 daemon 運​行​。​
您​可​以​使​用 xend 來​重​新​啟​動 daemon:
service xend restart
daemon 再​次​啟​動​。​
您​可​以​確​認 xend daemon 的​狀​態​。​
service xend status
這​會​顯​示 daemon 的​狀​態​。​

在​開​機​時​啟​用 xend

使​用 chkconfig 指​令​來​將 xend 附​加​至 initscript。​
chkconfig --level 345 xend
xend 現​在​會​在 runlevel 3、​4 和 5 模​式​下​啟​動​。​

章 11. KVM 客​座​端​時​間​管​理​

KVM 使​用​了​許​多​現​代 CPU 的​一​致​的​時​間​戳​記​計​數​器​(Time Stamp Counter,TSC)功​能​。​有​些 CPU 沒​有​一​致​的​時​間​戳​記​計​數​器​,這​將​會​影​響​客​座​端​以 KVM 取​樣​時​間​來​執​行​的​方​式​。​客​座​端​在​沒​有​準​確​的​時​間​紀​錄​的​情​況​下​運​作​可​能​會​嚴​重​影​響​某​些​網​路​應​用​程​式​,因​為​您​的​客​座​端​將​會​以​比​實​際​時​間​更​快​或​更​慢​的​速​度​來​運​作​。​
不​準​確​的​時​鐘​和​計​數​器​可​能​會​造​成​客​座​端​的​一​些​問​題​發​生​:
  • 時​鐘​可​能​會​無​法​與​實​際​的​時​間​同​步​,以​致 session 無​法​驗​證​並​影​響​網​路​。​
  • 時​鐘​較​慢​的​客​座​端​可​能​在​遷​移​時​會​發​生​問​題​。​
  • 客​座​端​可​能​會​停​滯​或​當​機​。​
這​些​問​題​也​存​在​其​它​虛​擬​化​平​台​上​,因​此​必​須​每​次​測​試​時​間​。​

NTP

網​路​時​間​協​定​(Network Time Protocol,NTP)daemon 應​在​主​機​以​及​客​座​端​上​執​行​。​請​啟​用 ntpd 服​務​:
# service ntpd start
將 ntpd 服​務​新​增​至​預​設​的​啟​動​序​列​中​:
# chkconfig ntpd on
使​用 ntpd 服​務​便​能​有​效​降​低​所​有​時​鐘​偏​移​(clock skew)情​況​下​所​造​成​的​影​響​。​
偵​測​您​的 CPU 是​否​擁​有​一​致​的​時​間​戳​記​計​數​器​
constant_tsc 旗​標​存​在​的​話​,您​的 CPU 便​擁​有​一​致​的​時​間​戳​記​計​數​器​。​若​要​檢​查​您​的 CPU 是​否​擁​有 constant_tsc 旗​標​,請​執​行​下​列​指​令​:
$ cat /proc/cpuinfo | grep constant_tsc
若​您​得​到​任​何​輸​出​結​果​的​話​,您​的 CPU 便​擁​有 constant_tsc。​若​沒​有​得​到​任​何​結​果​的​話​,請​依​照​下​列​步​驟​進​行​。​
設​定​時​間​戳​記​計​數​器​不​一​致​的​主​機​
時​間​戳​記​計​數​器​不​一​致​的​系​統​需​要​經​過​額​外​的​設​定​。​電​源​管​理​功​能​會​影​響​正​確​的​時​間​紀​錄​,並​且​客​座​端​上​必​須​將​它​停​用​,才​可​在​使​用 KVM 時​正​確​地​紀​錄​時​間​。​

Note

這​些​指​南​只​對​應​於 AMD 修​訂​版 F cpu。​
若 CPU 沒​有 constant_tsc 的​話​,請​停​用​所​有​電​源​管​理​功​能​(BZ#513138)。​每​部​系​統​都​有​幾​個​它​用​來​管​理​時​間​的​計​時​器​。​TSC 在​主​機​上​不​穩​定​,這​有​時​是​因​為 cpufreq 的​變​更​、​deep C 狀​態​(休​眠​狀​態​的​一​種​),或​是​遷​移​至​一​部​含​有​較​快 TSC 的​主​機​所​造​成​的​。​若​要​停​止 deep C 狀​態​的​話​(這​將​會​使 TSC 停​下​),請​將​「​processor.max_cstate=1」​新​增​至​主​機​上​的 grub 中​的 kernel 開​機​選​項​:
term Fedora (vmlinuz-2.6.29.6-217.2.3.fc11)
        root (hd0,0)
        kernel /vmlinuz-vmlinuz-2.6.29.6-217.2.3.fc11 ro root=/dev/VolGroup00/LogVol00 rhgb quiet processor.max_cstate=1
請​透​過​編​輯 /etc/sysconfig/cpuspeed 配​置​檔​案​來​停​用 cpufreq(只​有​在​沒​有 constant_tsc 的​主​機​上​才​需​要​這​麼​作​)並​將 MIN_SPEEDMAX_SPEED 更​改​為​最​高​的​速​率​。​有​效​的​限​制​可​在 /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies 檔​案​中​找​到​。​
與 Red Hat Enterprise Linux 客​座​端​搭​配​使​用​半​虛​擬​化​時​鐘​
某​些​特​定 Red Hat Enterprise Linux 客​座​端​需​要​額​外​的​核​心​參​數​。​這​些​參​數​可​藉​由​將​其​附​加​至​客​座​端​的 /boot/grub/grub.conf 檔​案​中​的 /kernel 一​行​尾​端​來​設​定​。​
下​列​表​格​列​出​了 Red Hat Enterprise Linux 的​版​本​,以​及​沒​有​一​致​時​間​戳​記​計​數​器​的​系​統​所​需​的​參​數​。​
Red Hat Enterprise Linux額​外​的​客​座​端 kernel 參​數​
含​有​半​虛​擬​化​時​鐘​的 5.4 AMD64/Intel 64無​須​額​外​的​參​數​
無​半​虛​擬​化​時​鐘​的 5.4 AMD64/Intel 64divider=10 notsc lpj=n
含​有​半​虛​擬​化​時​鐘​的 5.4 x86 無​須​額​外​的​參​數​
沒​有​半​虛​擬​化​時​鐘​的 5.4 x86divider=10 clocksource=acpi_pm lpj=n
5.3 AMD64/Intel 64divider=10 notsc
5.3 x86divider=10 clocksource=acpi_pm
4.8 AMD64/Intel 64notsc divider=10
4.8 x86clock=pmtmr divider=10
3.9 AMD64/Intel 64 無​須​額​外​的​參​數​
3.9 x86無​須​額​外​的​參​數​
搭​配​使​用​半​虛​擬​化​時​鐘​以​及 Windows 客​座​端​
您​可​藉​由​編​輯​開​機​參​數​來​在 Windows 客​座​端​上​啟​用​半​虛​擬​化​時​鐘​。​Windows 的​開​機​設​定​儲​存​在 boot.ini 檔​案​中​。​若​要​啟​用​半​虛​擬​化​時​鐘​,請​新​增​下​列​一​行​:
/use pmtimer
欲​取​得​更​多​有​關​於 Windows 開​機​設​定​以​及 pmtimer 選​項​上​的​相​關​資​訊​,請​參​閱 Windows XP 和 Windows Server 2003 Boot.ini 檔​案​的​有​效​切​換​選​項​。​

章 12. KVM 即​時​遷​移​

此​章​節​涵​蓋​了​如​何​將 KVM hypervisor 上​運​作​的​客​座​端​,遷​移​至​另​一​台 KVM 主​機​上​。​
「​遷​移​」​代​表​將​虛​擬​化​客​座​端​由​一​部​主​機​移​至​另​一​部​主​機​上​的​程​序​。​遷​移​是​虛​擬​化​的​關​鍵​功​能​之​一​,因​為​軟​體​和​硬​體​是​完​全​分​離​的​。​遷​移​對​於​下​列​情​況​相​當​有​幫​助​:
  • Load balancing - guests can be moved to hosts with lower usage when a host becomes overloaded.
  • Hardware failover - when hardware devices on the host start to fail, guests can be safely relocated so the host can be powered down and repaired.
  • Energy saving - guests can be redistributed to other hosts and host systems powered off to save energy and cut costs in low usage periods.
  • Geographic migration - guests can be moved to another location for lower latency or in serious circumstances.
您​可​進​行​即​時​或​離​線​遷​移​。​若​要​遷​移​客​座​端​,您​必​須​共​享​儲​存​裝​置​。​遷​移​就​是​將​客​座​端​記​憶​體​傳​送​至​目​標​主​機​上​。​共​享​儲​存​裝​置​可​儲​存​客​座​端​的​預​設​檔​案​系​統​。​檔​案​系​統​映​像​檔​並​非​藉​由​網​路​來​從​來​源​主​機​上​傳​送​至​目​標​主​機​上​的​。​
An offline migration suspends the guest then moves an image of the guests memory to the destination host. The guest is resumed on the destination host and the memory the guest used on the source host is freed.
離​線​遷​移​程​序​的​所​需​時​間​取​決​於​網​路​頻​寬​和​延​遲​時​間​。​在​一​個 1 Gbit 的​乙​太​網​路​上​,遷​移​一​台​擁​有 2GB 記​憶​體​的​客​座​端​大​約​會​花​上​十​秒​鐘​左​右​的​時​間​。​
即​時​遷​移​會​讓​客​座​端​持​續​在​來​源​主​機​上​執​行​,並​且​在​不​停​用​該​客​座​端​的​情​況​下​,開​始​移​動​記​憶​體​。​當​映​像​檔​被​傳​送​時​,所​有​經​過​修​改​的​記​憶​體​分​頁​(memory page)皆​會​受​到​監​控​以​查​看​是​否​有​任​何​變​更​,並​傳​送​至​目​的​地​。​記​憶​體​會​隨​著​受​到​變​更​的​分​頁​一​起​更​新​。​這​項​程​序​會​持​續​進​行​,直​到​客​座​端​被​允​許​的​暫​停​時​間​與​最​後​幾​個​分​頁​傳​輸​的​預​計​時​間​相​等​。​KVM 會​估​計​判​斷​出​剩​餘​的​時​間​有​多​久​,並​嘗​試​將​最​大​量​的​分​頁​由​來​源​傳​輸​至​目​的​地​,直​到 KVM 能​預​測​出​剩​下​的​分​頁​可​在​虛​擬​客​座​端​暫​停​時​,在​設​定​的​時​間​內​傳​輸​完​成​。​暫​存​器​會​被​載​入​到​新​的​主​機​上​,並​且​客​戶​端​將​會​在​目​標​主​機​上​復​原​。​若​客​座​端​無​法​合​併​的​話​(當​客​座​端​負​載​過​高​時​),客​座​端​將​會​暫​停​,並​且​離​線​遷​移​程​序​將​會​啟​動​。​
離​線​遷​移​程​序​的​所​需​時​間​,取​決​於​網​路​頻​寬​和​延​遲​時​間​。​若​客​座​端​正​被​大​量​,使​用​或​是​頻​寬​過​低​的​話​,遷​移​程​序​將​會​花​上​較​久​的​時​間​。​

12.1. 即​時​遷​移​需​求​

遷​移​客​座​端​的​需​求​如​下​:
遷​移​需​求​
  • 虛​擬​化​客​座​端​必​須​透​過​使​用​下​列​其​中​一​種​協​定​,安​裝​在​共​享​的​網​路​儲​存​裝​置​上​:
    • Fibre Channel
    • iSCSI
    • NFS
    • GFS2
  • 兩​部​(或​更​多​)裝​有​相​同​版​本​以​及​相​同​更​新​的 Fedora 的​系​統​。​
  • 兩​部​系​統​皆​必​須​開​啟​正​確​的​連​接​埠​。​
  • 兩​部​系​統​皆​必​須​擁​有​相​同​的​網​路​設​定​。​這​兩​台​主​機​上​的​所​有​橋​接​與​網​路​設​定​都​必​須​是​相​同​的​。​
  • 共​享​儲​存​裝​置​必​須​掛​載​在​來​源​與​目​標​系​統​上​的​相​同​的​位​置​上​。​掛​載​的​目​錄​名​稱​必​須​是​相​同​的​。​
設​定​網​路​儲​存​裝​置​
配​置​共​享​儲​存​裝​置​,並​將​客​座​端​安​裝​在​共​享​儲​存​裝​置​上​。​欲​取​得​共​享​儲​存​裝​置​的​相​關​指​南​,請​參​閱 章 5, 共​享​儲​存​裝​置​和​虛​擬​化​。​

12.2. 共​享​儲​存​裝​置​範​例​:用​來​進​行​基​本​遷​移​的 NFS

此​範​例​使​用​了 NFS 來​與​其​它 KVM 主​機​共​享​客​座​端​映​像​檔​。​此​範​例​不​適​用​於​大​型​安​裝​,該​範​例​只​適​用​於​遷​移​技​巧​以​及​小​型​建​置​上​的​示​範​。​請​勿​使​用​此​範​例​來​遷​移​或​執​行​大​量​虛​擬​化​客​座​端​。​
若​要​取​得​進​階​和​更​詳​細​的​共​享​儲​存​裝​置​指​南​,請​參​閱 章 5, 共​享​儲​存​裝​置​和​虛​擬​化​
  1. 匯​出​您​的 libvirt 映​像​檔​目​錄​

    請​將​預​設​映​像​檔​目​錄​新​增​至 /etc/exports 檔​案​中​:
    /var/lib/libvirt/images *.bne.redhat.com(rw,no_root_squash,async)
    
    依​照​您​的​環​境​需​求​更​改​主​機​參​數​。​
  2. 啟​用 NFS

    1. 若 NFS 套​件​還​未​安​裝​的​話​便​將​它​安​裝​:
      # yum install nfs
      
    2. iptables 中​開​啟 NFS 的​連​接​埠​,並​將 NFS 新​增​至 /etc/hosts.allow 檔​案​中​。​
    3. 啟​用 NFS 服​務​:
      # service nfs start
      
  3. 將​共​享​儲​存​裝​置​掛​載​在​目​標​系​統​上​

    在​目​標​系​統​上​掛​載 /var/lib/libvirt/images 目​錄​:
    # mount sourceURL:/var/lib/libvirt/images /var/lib/libvirt/images
    

    來​源​與​目​的​地​上​的​位​置​必​須​是​相​同​的​

    無​論​為​客​座​端​選​擇​了​哪​個​目​錄​,在​主​機​與​客​座​端​上​都​必​須​是​相​同​的​。​對​於​所​有​類​型​的​共​享​儲​存​裝​置​都​必​須​是​如​此​。​目​錄​必​須​是​相​同​的​,否​則​遷​移​將​會​失​敗​。​

12.3. 以 virsh 來​進​行​即​時 KVM 遷​移​

您​可​透​過 virsh 指​令​來​將​客​座​端​遷​移​至​另​一​部​主​機​上​。​migrate 指​令​接​受​下​列​參​數​格​式​:
# virsh migrate --live GuestName DestinationURL
The GuestName parameter represents the name of the guest which you want to migrate.
The DestinationURL parameter is the URL or hostname of the destination system. The destination system must run the same version of Fedora, be using the same hypervisor and have libvirt running.
Once the command is entered you will be prompted for the root password of the destination system.
範​例​:以 virsh 來​進​行​即​時​遷​移​
此​範​例​顯​示​了​由 test1.bne.redhat.com 遷​移​至 test2.bne.redhat.com 的​範​本​。​請​更​改​您​環​境​的​主​機​名​稱​。​此​範​例​遷​移​了​一​部​名​為 CentOS4test 的​虛​擬​機​器​。​
此​範​例​假​設​您​已​完​整​設​定​了​共​享​儲​存​裝​置​,並​且​滿​足​了​所​有​先​決​條​件​(先​決​條​件​列​於​此​:遷​移​需​求​)。​
  1. 驗​證​客​座​端​是​否​正​在​運​作​

    請​由​來​源​系​統 test1.bne.redhat.com 上​驗​證 CentOS4test 是​否​正​在​運​作​:
    [root@test1 ~]# virsh list
    Id Name                 State
    ----------------------------------
     10 CentOS4                running
    
  2. 遷​移​客​座​端​

    執​行​下​列​指​令​來​將​客​座​端​即​時​遷​移​至​目​的​地 test2.bne.redhat.com。​請​將 /system 附​加​至​目​標 URL 的​尾​端​來​讓 libvirt 知​道​您​需​要​完​整​的​存​取​權​限​。​
    # virsh migrate --live CentOS4test qemu+ssh://test2.bne.redhat.com/system
    
    Once the command is entered you will be prompted for the root password of the destination system.
  3. 等​待​

    遷​移​程​序​可​能​會​根​據​客​座​端​的​負​載​和​大​小​而​花​上​一​段​時​間​。​virsh 只​會​回​報​錯​誤​。​客​座​端​會​繼​續​在​來​源​主​機​上​執​行​直​到​完​全​被​遷​移​。​
  4. 驗​證​客​座​端​已​到​達​目​標​主​機​

    請​由​目​標​系​統 test2.bne.redhat.com 上​驗​證 CentOS4test 是​否​有​在​運​作​:
    [root@test2 ~]# virsh list
    Id Name                 State
    ----------------------------------
     10 CentOS4                running
    
即​時​遷​移​已​完​成​。​

其​它​網​路​作​業​方​式​

libvirt 支​援​各​種​網​路​作​業​方​式​,這​包​含​了 TLS/SSL、​unix sockets、​SSH 以​及​未​加​密​的 TCP。​欲​取​得​更​多​使​用​其​它​方​式​上​的​相​關​資​訊​,請​參​閱 章 13, 虛​擬​化​客​座​端​的​遠​端​管​理​。​

12.4. 以 virt-manager 來​進​行​遷​移​

此​部​份​涵​蓋​了​如​何​透​過 virt-manager 來​遷​移​基​於 KVM 的​客​座​端​。​
  1. 連​至​來​源​與​目​標​主​機​。​請​在​「​檔​案​」​選​單​上​選​取​「​新​增​連​線​」​,接​著​「​新​增​連​線​」​視​窗​便​會​出​現​。​
    請​輸​入​下​列​資​訊​:
    • Hypervisor:選​擇 「​QEMU」​。​
    • 連​線​:選​擇​連​線​類​型​。​
    • 主​機​名​稱​:輸​入​主​機​名​稱​。​
    點​選​「​連​線​」​。​
    虛​擬​主​機​管​理​程​式​將​會​顯​示​已​連​接​的​主​機​列​表​。​
  2. 新​增​一​個​含​有​與​來​源​與​目​標​主​機​相​同 NFS 的​儲​存​裝​置 pool。​
    請​在​「​編​輯​」​選​單​上​點​選​「​主​機​詳​細​資​訊​」​,接​著​主​機​詳​細​資​訊​的​視​窗​便​會​出​現​。​
    請​點​選​「​儲​存​裝​置​」​分​頁​。​
  3. 新​增​儲​存​裝​置 pool。​請​點​選​位​於​視​窗​的​左​下​角​的​「​+」​按​鈕​。​接​著​「​新​增​儲​存​裝​置 Pool」​的​視​窗​便​會​出​現​。​
    請​輸​入​下​列​資​訊​:
    • 名​稱​:輸​入​儲​存​裝​置 pool 的​名​稱​。​
    • 類​型​:選​擇​「​netfs:網​路​匯​出​目​錄​」​。​
    點​選​「​下​一​步​」​。​
  4. 請​輸​入​下​列​資​訊​:
    • 格​式​:選​擇​儲​存​裝​置​類​型​。​若​是​即​時​遷​移​的​話​,這​必​須​是 NFS 或​是 iSCSI。​
    • 主​機​名​稱​:輸​入​儲​存​裝​置​伺​服​器​的 IP 位​址​或​完​整​網​域​名​稱​。​
    點​選​「​完​成​」​。​
  5. 在​共​享​儲​存​裝​置 pool 中​建​立​新​卷​冊​,請​點​選​「​新​建​卷​冊​」​。​
  6. 請​輸​入​詳​細​資​料​並​按​下​「​建​立​卷​冊​」​。​
  7. 以​新​建​的​卷​冊​來​建​立​虛​擬​機​器​,然​後​執​行​虛​擬​機​器​。​
    虛​擬​主​機​視​窗​將​會​出​現​。​
  8. 請​在​虛​擬​主​機​管​理​主​視​窗​中​以​滑​鼠​右​鍵​點​選​虛​擬​機​器​、​選​擇​「​遷​移​」​,然​後​點​選​遷​移​位​置​。​
  9. 點​選​「​是​」​來​確​認​遷​移​。​
    虛​擬​主​機​管​理​程​式​會​將​虛​擬​機​器​顯​示​在​它​的​新​位​置​上​。​
    虛​擬​主​機​主​視​窗​會​顯​示​新​虛​擬​機​器​的​位​置​。​

章 13. 虛​擬​化​客​座​端​的​遠​端​管​理​

此​部​份​解​釋​了​如​何​透​過​使​用 ssh 或​是 TLS 與 SSL 來​遠​端​管​理​您​的​虛​擬​化​客​座​端​。​

13.1. 透​過​使​用 SSH 來​進​行​遠​端​管​理​

ssh 這​個​套​件​提​供​了​安​全​的​加​密​網​路​通​訊​協​定​,用​來​將​管​理​功​能​傳​送​至​遠​端​虛​擬​伺​服​器​。​在​此​所​描​述​的​方​法​使​用​了 libvirt 管​理​連​線​並​安​全​地​通​過​了​一​個 SSH 連​線​來​管​理​遠​端​機​器​。​所​有​認​證​都​是​透​過​使​用 SSH 公​共​金​鑰​加​密​,以​及​透​過​您​本​機 SSH 代​理​程​式​所​蒐​集​的​密​碼​或​密​語​來​進​行​的​。​此​外​,各​個​客​座​端​虛​擬​機​器​的 VNC 主​控​台​都​會​通​過 SSH。​
SSH 一​般​已​透​過​預​設​值​配​置​,因​此​您​的 SSH 金​鑰​可​能​早​就​已​經​設​置​妥​當​,並​且​無​須​額​外​的​防​火​牆​規​則​便​能​存​取​管​理​服​務​或​是 VNC 主​控​台​。​
請​小​心​使​用 SSH 來​為​您​的​虛​擬​機​器​進​行​遠​端​管​理​上​的​一​些​問​題​,這​些​問​題​包​含​:
  • 您​需​要 root 登​入​權​限​才​可​存​取​用​來​管​理​虛​擬​主​機​的​遠​端​機​器​、​
  • 初​始​連​線​設​定​程​序​可​能​會​較​緩​慢​、​
  • 目​前​沒​有​撤​回​用​戶​在​所​有​主​機​或​客​座​端​上​的​金​鑰​之​標​準​或​一​般​方​法​,以​及​
  • ssh 不​適​用​於​大​量​的​遠​端​機​器​。​
virt-manager 設​定 SSH 存​取​
以​下​章​節​假​設​您​是​從​頭​開​始​,並​且​還​未​設​置 SSH 金​鑰​。​
  1. 您​需​要​在​使​用​了 virt-manager 的​機​器​上​擁​有​一​組​公​共​金​鑰​配​對​。​若​您​已​設​定​了 ssh 的​話​,您​便​可​跳​過​這​項​指​令​。​
    $ ssh-keygen -t rsa
    
  2. 若​要​允​許​遠​端​登​入​,virt-manager 在​每​部​執​行 libvirt 的​遠​端​機​器​上​都​需​要​一​份​公​開​金​鑰​。​請​透​過​使​用 scp 指​令​,從​您​想​要​進​行​遠​端​管​理​的​機​器​上​複​製 $HOME/.ssh/id_rsa.pub 這​個​檔​案​:
    $ scp $HOME/.ssh/id_rsa.pub root@somehost:/root/key-dan.pub
    
  3. 當​檔​案​被​複​製​後​,請​使​用 ssh 以 root 身​份​連​至​遠​端​機​器​並​將​您​複​製​的​檔​案​附​加​至​已​認​證​之​金​鑰​的​清​單​。​若​遠​端​主​機​上​的 root 使​用​者​還​未​擁​有​一​列​已​認​證​之​金​鑰​的​清​單​,請​確​認​檔​案​權​限​已​正​確​設​置​
    $ ssh root@somehost
    # mkdir /root/.ssh
    # chmod go-rwx /root/.ssh
    # cat /root/key-dan.pub >> /root/.ssh/authorized_keys
    # chmod go-rw /root/.ssh/authorized_keys
    
libvirt daemon(libvirtd
libvirt daemon 提​供​了​一​個​管​理​虛​擬​機​器​的​介​面​。​您​必​須​安​裝​了 libvirtd daemon 並​在​所​有​您​需​要​管​理​的​遠​端​主​機​上​執​行​它​。​欲​使​用 Fedora kernel-xen 套​件​,您​需​要​進​行​特​殊​的​相​關​步​驟​。​
$ ssh root@somehost
# chkconfig libvirtd on
# service libvirtd start
libvirtdSSH 經​過​設​定​後​,您​便​應​該​能​夠​遠​端​存​取​並​管​理​您​的​虛​擬​機​器​。​至​此​,您​也​應​該​能​夠​透​過 VNC 來​存​取​您​的​客​座​端​。​

13.2. 透​過​使​用 TLS 與 SSL 來​進​行​遠​端​管​理​

您​可​透​過​使​用 TLS 和 SSL 來​管​理​虛​擬​機​器​。​TLS 和 SSL 提​供​了​較​大​的​靈​活​度​,不​過​卻​比 ssh 還​要​複​雜​(請​參​閱 節 13.1, “透​過​使​用 SSH 來​進​行​遠​端​管​理​”)。​TLS 與 SSL 為​網​站​伺​服​器​使​用​來​進​行​安​全​連​線​的​相​同​技​術​。​libvirt 管​理​連​線​會​為​連​入​的​連​線​開​啟​一​個 TCP 通​訊​埠​,該​通​訊​埠​會​透​過​安​全​的​加​密​,以​及​基​於 x509 憑​證​的​驗​證​來​受​到​保​護​。​除​此​之​外​,所​有​客​座​端​虛​擬​機​器​的 VNC 主​控​台​都​會​被​設​定​為​使​用 TLS 以​及 x509 憑​證​來​進​行​驗​證​。​
若​使​用​此​方​式​,受​到​管​理​的​遠​端​機​器​上​便​不​需​要​擁​有 shell 帳​號​。​不​過​,您​需​要​額​外​的​防​火​牆​規​則​才​可​存​取​管​理​服​務​或 VNC 主​控​台​。​憑​證​撤​回​清​單​可​被​用​來​撤​回​提​供​給​使​用​者​的​存​取​權​限​。​
為 virt-manager 設​定 TLS/SSL 存​取​的​步​驟​
下​列​簡​短​的​指​南​假​設​您​是​從​頭​開​始​並​且​沒​有​任​何 TLS/SSL 認​證​的​相​關​知​識​。​若​您​有​一​部​憑​證​管​理​伺​服​器​,您​也​許​可​以​跳​過​第​一​個​步​驟​。​
libvirt 伺​服​器​設​定​
欲​取​得​更​多​有​關​於​建​立​憑​證​的​相​關​資​訊​,請​參​閱 libvirt 網​站 http://libvirt.org/remote.html。​
Xen VNC 伺​服​器​
Xen VNC 伺​服​器​可​透​過​編​輯 /etc/xen/xend-config.sxp 這​個​配​置​檔​案​來​啟​用 TLS。​請​將​配​置​檔​案​中​的 (vnc-tls 1) 設​定​參​數​的​註​解​符​號​移​除​掉​。​
/etc/xen/vnc 目​錄​需​要​下​列 3 個​檔​案​:
  • ca-cert.pem - CA 憑​證​
  • server-cert.pem - CA 所​簽​署​的​伺​服​器​憑​證​
  • server-key.pem - 伺​服​器​私​密​金​鑰​
它​提​供​了​資​料​頻​道​上​的​加​密​。​要​求​客​戶​端​提​供​他​們​自​己​的 x509 憑​證​來​進​行​驗​證​可​能​會​較​為​適​當​。​若​要​啟​用​的​話​,請​將 (vnc-x509-verify 1) 參​數​上​的​註​解​移​除​掉​。​
virt-managervirsh 客​戶​端​設​定​
客​戶​端​的​設​定​目​前​還​不​太​一​致​。​若​要​啟​用 libvirt 管​理 API,CA 與​客​戶​端​憑​證​就​必​須​被​放​置​在 /etc/pki 中​。​如​欲​取​得​更​多​相​關​資​訊​,請​參​閱 http://libvirt.org/remote.html。​
當​連​至​主​機​時​,請​在 virt-manager 用​戶​介​面​中​使​用 「​SSL/TLS」​ 這​項​傳​輸​機​制​選​項​。​
使​用 virsh 的​話 URI 的​格​式​會​如​下​:
  • 使​用 KVM 的​話​:qemu://hostname.guestname/system。​
  • 使​用 Xen 的​話​:xen://hostname.guestname/。​
若​要​啟​用 VNC 的 SSL 和 TLS,您​需​要​將​憑​證​授​權​和​客​戶​端​憑​證​放​置​在 $HOME/.pki 之​中​,也​就​是​以​下​的​三​個​檔​案​:
  • CA 或​是 ca-cert.pem - CA 憑​證​。​
  • libvirt-vncclientcert.pem - CA 所​簽​署​的​客​戶​端​憑​證​。​
  • libvirt-vncclientkey.pem - 客​戶​端​私​密​金​鑰​。​

13.3. 傳​輸​模​式​

當​進​行​遠​端​管​理​時​,libvirt 支​援​下​列​傳​輸​模​式​:
傳​輸​層​安​全​性​(Transport Layer Security,TLS)
傳​輸​層​安​全​性 TLS 1.0(SSL 3.1)驗​證​並​加​密​了 TCP/IP socket,一​般​會​在​公​用​的​連​線​埠​號​上​進​行​監​聽​。​若​要​使​用​它​,您​將​需​要​產​生​客​戶​端​與​伺​服​器​憑​證​。​標​準​通​訊​埠​為 16514。​
UNIX socket
Unix 網​域 socket 只​有​透​過​本​機​機​器​才​可​被​存​取​。​Socket 並​未​加​密​,並​且​使​用​了 UNIX 權​限​或​是 SELinux 來​進​行​驗​證​。​標​準​的 socket 名​稱​為 /var/run/libvirt/libvirt-sock 以​及 /var/run/libvirt/libvirt-sock-ro(唯​讀​連​線​)。​
SSH
透​過​一​個​安​全​性 Shell 協​定​(SSH)連​線​來​傳​輸​。​需​要​安​裝 Netcat(nc 套​件​)。​libvirt daemon(libvirtd)必​須​在​遠​端​機​器​上​執​行​。​通​訊​埠 22 必​須​開​啟​才​可​進​行 SSH 存​取​。​您​應​該​使​用​某​種 ssh 金​鑰​管​理​(例​如 ssh-agent 工​具​)否​則​您​將​會​被​提​示​輸​入​密​碼​。​
ext
ext 參​數​用​於​任​何​能​夠​連​至​遠​端​機​器​,libvirt 所​無​法​處​理​的​外​部​程​式​。​這​一​般​包​含​第​三​方​、​不​受​支​援​的​安​全​性​應​用​程​式​。​
tcp
未​加​密​的 TCP/IP socket。​不​建​議​使​用​於​生​產​環​境​下​,這​一​般​會​被​停​用​,不​過​管​理​員​亦​可​啟​用​它​來​進​行​測​試​或​是​在​信​任​的​網​路​上​使​用​。​預​設​通​訊​埠​為 16509。​
若​沒​有​指​定​的​話​,預​設​傳​輸​將​會​是 tls。​
遠​端 URI
統​一​資​源​識​別​元​(Uniform Resource Identifier,URI)一​般​會​被 virshlibvirt 使​用​來​連​至​遠​端​主​機​。​URI 亦​可​與 --connect 參​數​搭​配​使​用​,讓 virsh 指​令​在​遠​端​主​機​上​執​行​單​獨​的​指​令​或​遷​移​。​
libvirt URI 的​格​式​為​(中​括​號 [] 裡​的​內​容​是​選​用​的​功​能​):
driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]
您​必​須​提​供​傳​輸​方​式​或​是​主​機​名​稱​,才​能​夠​與​本​機 URI 進​行​分​辨​。​
遠​端​管​理​參​數​的​範​例​
  • 使​用 SSH 通​訊​協​定​與​使​用​者​名​稱 ccurran,連​至​遠​端 Xen hypervisor 上​名​為 towada 的​主​機​。​
    xen+ssh://ccurran@towada/
    
  • 使​用 TLS 來​連​至​主​機​上​一​個​名​為 towada 的​遠​端 Xen hypervisor。​
    xen://towada/
    
  • 使​用 TLS 來​連​至​主​機 towada 上​的​遠​端 Xen hypervisor。​no_verify=1 會​讓 libvirt 知​道​無​須​去​驗​證​伺​服​器​的​憑​證​。​
    xen://towada/?no_verify=1
    
  • 使​用 SSH 來​連​至​主​機 towada 上​的​遠​端 KVM hypervisor。​
    qemu+ssh://towada/system
    
測​試​範​例​
  • 透​過​非​標​準​的 UNIX socket 來​連​至​本​機 KVM hypervisor。​Unix socket 的​完​整​路​徑​在​此​範​例​中​會​明​確​地​提​供​。​
    qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
    
  • 連​至​一​個​透​過​了​未​加​密​的 TCP/IP 連​線​至​通​訊​埠 5000,IP 位​址​為 10.0.0.10 的 libvirt daemon。​這​使​用​了​測​試​驅​動​程​式​和​預​設​設​定​。​
    test+tcp://10.1.1.10:5000/default
    
額​外​的 URI 參​數​
您​可​附​加​額​外​的​參​數​至​遠​端 URI 上​。​下​列​表​格 表格 13.1, “額​外​的 URI 參​數​” 涵​蓋​了​已​辨​識​的​參​數​。​所​有​其​它​參​數​都​會​被​忽​略​。​請​注​意​,參​數​值​必​須​是 URI 跳​脫​(URL-escaped)的​值​(也​就​是​參​數​與​特​殊​字​元​之​前​需​要​附​加​一​個​問​號​〔​?〕​才​可​轉​換​為 URI 格​式​)。​
名​稱​ 傳​輸​模​式​ Description 使​用​範​例​
name 所​有​模​式​ 傳​送​至​遠​端 virConnectOpen 函​式​的​名​稱​。​這​組​名​稱​一​般​是​透​過​移​除​來​自​於​遠​端 URI 的​傳​輸​、​主​機​名​稱​、​連​接​埠​號​、​使​用​者​名​稱​和​額​外​參​數​所​形​成​的​,不​過​在​一​些​非​常​複​雜​的​情​況​下​,您​最​好​明​確​地​提​供​這​組​名​稱​。​ name=qemu:///system
command ssh 和 ext 外​部​指​令​。​進​行 ext 傳​輸​時​需​要​這​項​指​令​。​ssh 的​預​設​值​則​是 ssh。​指​令​的​路​徑​(PATH)會​被​搜​尋​。​ command=/opt/openssh/bin/ssh
socket unix 和 ssh UNIX 網​域 socket 的​路​徑​,這​會​置​換​掉​預​設​值​。​進​行 ssh 傳​輸​時​,這​會​被​傳​送​至​遠​端​的 netcat 指​令​(請​查​看 netcat)。​ socket=/opt/libvirt/run/libvirt/libvirt-sock
netcat ssh netcat 指​令​在​遠​端​機​器​上​的​名​稱​。​預​設​值​為 nc。​當​進​行 ssh 傳​輸​時​,libvirt 會​建​立​一​項 ssh 指​令​看​似​:command -p port [-l username] hostname netcat -U socket,連​接​埠​、​使​用​者​名​稱​、​主​機​名​稱​皆​可​被​指​定​為​遠​端 URI 的​一​部​分​,netcat 和 socket 則​來​自​於​額​外​的​參​數​(或​是​適​當​的​預​設​值​)。​ netcat=/opt/netcat/bin/nc
no_verify tls 若​設​為​一​個​非​零​的​值​,這​將​會​停​用​客​戶​端​的​伺​服​器​憑​證​檢​測​。​請​注​意​,若​要​停​用​客​戶​端​憑​證​或 IP 位​址​的​伺​服​器​檢​測​的​話​,您​必​須​更​改 libvirt 的​組​態​設​定​。​ no_verify=1
no_tty ssh 若​設​為​一​個​非​零​的​值​,這​將​會​停​止 ssh 在​無​法​自​動​地​(透​過​使​用 ssh-agent 等​等​)登​入​遠​端​機​器​時​,要​求​使​用​者​輸​入​密​碼​。​請​在​您​沒​有​終​端​機​存​取​權​限​時​使​用​它 - 比​方​說​在​使​用 libvirt 的​圖​形​化​程​式​中​。​ no_tty=1
表格 13.1. 額​外​的 URI 參​數​

部 IV. 虛​擬​化​參​考​指​南​

虛​擬​化​指​令​、​系​統​工​具​、​應​用​程​式​與​其​他​的​系​統​參​考​資​料​

這​些​章​節​提​供​了​包​含​在 Fedora 中​的​虛​擬​化​指​令​、​系​統​工​具​、​以​及​應​用​程​式​的​詳​細​描​述​。​這​些​章​節​乃​針​對​需​要​進​階​功​能​資​訊​的​使​用​者​所​撰​寫​。​

章 14. 虛​擬​化​工​具​

以​下​是​虛​擬​化​管​理​工​具​、​除​錯​與​網​路​工​具​的​清​單​,這​些​工​具​有​助​於​執​行 Xen 的​系​統​。​
系​統​管​理​員​工​具​
  • vmstat
  • iostat
  • lsof
    # lsof -i :5900
    xen-vncfb 10635  root  5u  IPv4 218738  TCP grumble.boston.redhat.com:5900 (LISTEN)
    
  • qemu-img
進​階​的​除​錯​工​具​
  • systemTap
  • crash
  • xen-gdbserver
  • sysrq
  • sysrq t
  • sysrq w
  • sysrq c
網​路​作​業​
brtcl
  • # brctl show
    bridge name  bridge id            STP enabled    interfaces
    xenbr0       8000.feffffffffff    no             vif13.0
                                                     pdummy0
                                                     vif0.0
    
  • # brctl showmacs xenbr0
    port no  mac addr                is local?       aging timer
      1      fe:ff:ff:ff:ff:ff       yes             0.00
    
  • # brctl showstp xenbr0
    xenbr0
    bridge id              8000.feffffffffff
    designated root        8000.feffffffffff
    root port              0                    path cost                 0
    max age                20.00                bridge max age            20.00
    hello time             2.00                 bridge hello time         2.00
    forward delay          0.00                 bridge forward delay      0.00
    aging time            300.01
    hello timer            1.43                 tcn timer                 0.00
    topology change timer  0.00                 gc timer                  0.02
    flags
    
    vif13.0 (3)
    port id                8003                 state                    forwarding
    designated root        8000.feffffffffff    path cost                100
    designated bridge      8000.feffffffffff    message age timer        0.00
    designated port        8003                 forward delay timer      0.00
    designated cost        0                    hold timer               0.43
    flags
    
    pdummy0 (2)
    port id                8002                 state                    forwarding
    designated root        8000.feffffffffff    path cost                100
    designated bridge      8000.feffffffffff    message age timer        0.00
    designated port        8002                 forward delay timer      0.00
    designated cost        0                    hold timer               0.43
    flags
    
    vif0.0 (1)
    port id                8001                 state                    forwarding
    designated root        8000.feffffffffff    path cost                100
    designated bridge      8000.feffffffffff    message age timer        0.00
    designated port        8001                 forward delay timer      0.00
    designated cost        0                    hold timer               0.43
    flags
    
  • ifconfig
  • tcpdump
KVM 工​具​
  • ps
  • pstree
  • top
  • kvmtrace
  • kvm_stat
Xen 工​具​
  • xentop
  • xm dmesg
  • xm log

章 15. 透​過 virsh 來​管​理​客​座​端​

virsh 是​個​用​來​管​理​客​座​端​和 hypervisor(管​理​程​序​)的​指​令​列​介​面​工​具​。​
virsh 這​項​工​具​建​置​於 libvirt 管​理 API 上​,並​且​可​作​為​替​代 xm 工​具​和​圖​形​化​客​座​端​管​理​程​式​(virt-manager)的​額​外​選​項​來​進​行​作​業​。​無​權​限​的​使​用​者​只​可​使​用 virsh 的​唯​讀​模​式​。​您​可​使​用 virsh 來​執​行​客​座​端​機​器​的 script。​
virsh 指​令​快​速​參​照​指​南​
下​列​表​格​提​供​了​所​有 virsh 指​令​列​選​項​的​快​速​參​照​指​南​。​
指​令​ Description
help 印​出​基​本​協​助​資​訊​。​
list 列​出​所​有​客​座​端​。​
dumpxml 輸​出​客​座​端​的 XML 配​置​檔​案​。​
create 由​一​個 XML 配​置​檔​案​來​建​立​客​座​端​並​啟​用​新​的​客​座​端​。​
start 啟​用​一​個​未​啟​用​中​的​客​座​端​。​
destroy 強​制​客​座​端​停​下​。​
define 輸​出​客​座​端​的 XML 配​置​檔​案​。​
domid 顯​示​客​座​端​的 ID。​
domuuid 顯​示​客​座​端​的 UUID。​
dominfo 顯​示​客​座​端​的​相​關​資​訊​。​
domname 顯​示​客​座​端​的​名​稱​。​
domstate 顯​示​客​座​端​的​狀​態​。​
quit 退​出​互​動​式​終​端​機​。​
reboot 重​新​啟​動​客​座​端​。​
restore 恢​復​之​前​已​儲​存​於​一​個​檔​案​中​的​客​座​端​。​
resume 恢​復​一​個​暫​停​中​的​客​座​端​。​
save 將​客​座​端​目​前​的​狀​態​儲​存​至​一​個​檔​案​中​。​
shutdown 正​常​地​停​用​客​座​端​。​
suspend 將​客​座​端​暫​停​。​
undefine 刪​除​與​某​個​客​座​端​有​關​聯​的​所​有​檔​案​。​
migrate 將​客​座​端​遷​移​至​另​一​部​主​機​上​。​
表格 15.1. 客​座​端​管​理​指​令​

請​使​用​下​列 virsh 指​令​選​項​來​管​理​客​座​端​和 hypervisor 資​源​:
指​令​ Description
setmem 為​客​座​端​設​置​分​配​記​憶​體​。​
setmaxmem 設​定 hypervisor 所​能​使​用​的​記​憶​體​最​大​限​制​。​
setvcpus 更​改​分​配​給​客​座​端​的​虛​擬 CPU 數​量​。​
vcpuinfo 顯​示​有​關​於​客​座​端​的​虛​擬 CPU 資​訊​。​
vcpupin 控​制​客​座​端​的​虛​擬 CPU 相​似​性​。​
domblkstat 顯​示​正​在​執​行​中​的​客​座​端​的​區​塊​裝​置​數​據​。​
domifstat 顯​示​執​行​中​的​客​座​端​的​網​路​介​面​卡​數​據​。​
attach-device 透​過​使​用​某​個 XML 檔​案​中​的​裝​置​定​義​來​將​裝​置​附​加​至​客​座​端​上​。​
attach-disk 附​加​新​磁​碟​裝​置​至​客​座​端​。​
attach-interface 附​加​新​網​路​介​面​卡​至​客​座​端​。​
detach-device 將​裝​置​從​客​座​端​上​分​離​,接​受​與 attach-device 指​令​相​同​類​型​的 XML 描​述​。​
detach-disk 將​磁​碟​裝​置​由​客​座​端​上​移​除​。​
detach-interface 將​網​路​介​面​卡​由​客​座​端​上​移​除​。​
表格 15.2. 資​源​管​理​選​項​

以​下​為​其​它​的 virsh 指​令​:
指​令​ Description
version 顯​示 virsh 的​版​本​
nodeinfo 輸​出​有​關​於 hypervisor 的​相​關​資​訊​
表格 15.3. 其​它​選​項​

連​至 hypervisor
透​過 virsh 來​連​至​一​個 hypervisor session:
# virsh connect {hostname OR URL}
<name> 為 hypervisor 的​機​器​名​稱​。​若​您​希​望​進​行​唯​讀​的​連​線​,請​搭​配​使​用​上​述​指​令​與 -readonly。​
建​立​一​個​虛​擬​機​器​的 XML 傾​印​(配​置​檔​案​)
透​過 virsh 來​輸​出​客​座​端​的 XML 配​置​檔​案​:
# virsh dumpxml {domain-id, domain-name or domain-uuid}
這​項​指​令​會​將​客​座​端​的 XML 配​置​檔​案​輸​出​至​標​準​輸​出​(stdout)中​。​您​可​透​過​將​輸​出​傳​送​至​一​個​檔​案​來​儲​存​這​些​資​料​。​以​下​為​傳​送​輸​出​至​一​個​名​為 guest.xml 的​檔​案​的​範​例​:
# virsh dumpxml GuestID > guest.xml
guest.xml 這​個​檔​案​可​被​用​來​重​新​建​立​客​座​端​(請​參​閱 編​輯​客​座​端​的​配​置​檔​案​)。​您​可​編​輯​此 XML 配​置​檔​案​來​設​定​額​外​的​裝​置​或​是​建​置​額​外​的​客​座​端​。​欲​取​得​更​多​有​關​於​修​改​透​過 virsh dumpxml 所​建​立​的​檔​案​的​相​關​資​訊​,請​參​閱 節 18.1, “搭​配​使​用 virsh 與 XML 配​置​檔​案​”。​
virsh dumpxml 輸​出​的​範​例​:
# virsh dumpxml r5b2-mySQL01
<domain type='xen' id='13'>
    <name>r5b2-mySQL01</name>
    <uuid>4a4c59a7ee3fc78196e4288f2862f011</uuid>
    <bootloader>/usr/bin/pygrub</bootloader>
    <os>
        <type>linux</type>
        <kernel>/var/lib/libvirt/vmlinuz.2dgnU_</kernel>
        <initrd>/var/lib/libvirt/initrd.UQafMw</initrd>
        <cmdline>ro root=/dev/VolGroup00/LogVol00 rhgb quiet</cmdline>
    </os>
    <memory>512000</memory>
    <vcpu>1</vcpu>
    <on_poweroff>destroy</on_poweroff>
    <on_reboot>restart</on_reboot>
    <on_crash>restart</on_crash>
    <devices>
        <interface type='bridge'>
            <source bridge='xenbr0'/>
            <mac address='00:16:3e:49:1d:11'/>
            <script path='vif-bridge'/>
        </interface>
        <graphics type='vnc' port='5900'/>
        <console tty='/dev/pts/4'/>
    </devices>
</domain>
由​配​置​檔​案​建​立​客​座​端​
客​座​端​可​透​過 XML 配​置​檔​案​來​建​立​。​您​可​複​製​來​自​於​先​前​所​建​立​的​客​座​端​的 XML 檔​案​或​使​用 dumpxml 選​項​(請​參​閱 建​立​一​個​虛​擬​機​器​的 XML 傾​印​(配​置​檔​案​))。​若​要​透​過 virsh 來​從​一​個 XML 檔​案​建​立​客​座​端​,請​輸​入​:
# virsh create configuration_file.xml
編​輯​客​座​端​的​配​置​檔​案​
與​其​使​用 dumpxml 選​項​(請​參​閱 建​立​一​個​虛​擬​機​器​的 XML 傾​印​(配​置​檔​案​)),客​座​端​可​在​執​行​時​或​離​線​時​被​進​行​編​輯​。​virsh edit 指​令​提​供​了​這​項​功​能​。​比​方​說​,若​要​編​輯​一​個​名​為 softwaretesting 的​客​座​端​:
# virsh edit softwaretesting
這​將​會​開​啟​一​個​文​字​編​輯​器​。​預​設​文​字​編​輯​器​為 $EDITOR shell 參​數​(預​設​值​為 vi)。​
中​止​客​座​端​
透​過 virsh 來​中​止​客​座​端​:
# virsh suspend {domain-id, domain-name or domain-uuid}
當​客​座​端​為​中​止​狀​態​時​,它​仍​會​消​耗​系​統​記​憶​體​不​過​卻​不​會​消​耗​處​理​器​資​源​。​當​客​座​端​中​止​時​,磁​碟​與​網​路​的 I/O 將​不​會​發​生​。​這​項​作​業​會​即​刻​執​行​,而​客​座​端​也​可​透​過 resume復​原​客​座​端​)選​項​來​重​新​啟​動​。​
復​原​客​座​端​
透​過 virsh 指​令​和 resume 選​項​來​恢​復​使​用​一​個​中​止​的​客​座​端​:
# virsh resume {domain-id, domain-name or domain-uuid}
這​項​作​業​會​即​刻​執​行​,而​客​座​端​參​數​會​被​保​存​來​進​行 suspendresume 作​業​。​
儲​存​客​座​端​
透​過​使​用 virsh 指​令​來​將​客​座​端​目​前​的​狀​態​儲​存​至​一​個​檔​案​中​:
# virsh save {domain-name, domain-id or domain-uuid} filename
這​將​會​停​止​您​所​指​定​的​客​座​端​,並​將​資​料​儲​存​至​一​個​檔​案​中​。​根​據​客​座​端​所​使​用​的​記​憶​體​用​量​,這​也​許​會​花​上​一​些​時​間​。​您​可​透​過​使​用 restore復​原​客​座​端​)選​項​來​恢​復​客​座​端​的​狀​態​。​儲​存​與​暫​停​相​似​,除​了​只​將​客​座​端​暫​停​之​外​,它​還​會​儲​存​客​座​端​的​目​前​狀​態​。​
復​原​客​座​端​
使​用 virsh 來​復​原​您​先​前​透​過​使​用 virsh save 指​令​(儲​存​客​座​端​)所​儲​存​的​客​座​端​:
# virsh restore filename
這​會​重​新​啟​動​事​先​儲​存​的​客​座​端​,但​可​能​會​花​上​一​段​時​間​。​客​座​端​的​名​稱​與 UIDD 將​會​被​保​留​住​但​會​被​分​配​一​組​新​的 id。​
關​閉​客​座​端​
透​過​使​用 virsh 指​令​來​關​閉​客​座​端​:
# virsh shutdown {domain-id, domain-name or domain-uuid}
您​可​以​透​過​修​改​客​座​端​配​置​檔​案​中​的 on_shutdown 參​數​來​控​制​重​新​啟​動​中​的​客​座​端​之​特​性​。​
重​新​啟​動​客​座​端​
使​用 virsh 指​令​來​重​新​啟​動​客​座​端​:
#virsh reboot {domain-id, domain-name or domain-uuid}
您​可​以​透​過​修​改​客​座​端​配​置​檔​案​中​的 on_reboot 參​數​來​控​制​重​新​啟​動​中​的​客​座​端​之​特​性​。​
強​制​客​座​端​停​止​
透​過​使​用 virsh 指​令​來​停​止​客​座​端​:
# virsh destroy {domain-id, domain-name or domain-uuid}
使​用​這​項​指​令​會​造​成​立​即​的​關​閉​,並​停​止​指​定​的​客​座​端​。​使​用 virsh destroy 極​有​可​能​造​成​客​座​端​檔​案​系​統​損​毀​。​您​應​該​僅​在​客​座​端​沒​有​回​應​時​才​使​用 destroy 選​項​。​若​是​半​虛​擬​化​客​座​端​的​話​,您​則​應​使​用 shutdown 選​項​(shutdown option(關​閉​客​座​端​)來​代​替​。​
取​得​客​座​端​的​網​域 ID
若​要​取​得​客​座​端​的​網​域 ID:
# virsh domid {domain-name or domain-uuid}
取​得​客​座​端​的​網​域​名​稱​
若​要​取​得​客​座​端​的​網​域​名​稱​:
# virsh domname {domain-id or domain-uuid}
取​得​客​座​端​的 UUID
若​要​取​得​客​座​端​的 UUID:
# virsh domuuid {domain-id or domain-name}
virsh domuuid 指​令​輸​出​的​範​例​:
# virsh domuuid r5b2-mySQL01
4a4c59a7-ee3f-c781-96e4-288f2862f011
顯​示​客​座​端​資​訊
您​可​透​過​使​用 virsh 以​及​客​座​端​的​網​域 ID、​網​域​名​稱​或 UUID 來​顯​示​特​定​客​座​端​上​的​資​訊​:
# virsh dominfo {domain-id, domain-name or domain-uuid}
以​下​為​來​自 virsh dominfo 指​令​的​輸​出​範​例​:
# virsh dominfo r5b2-mySQL01
id:             13
name:           r5b2-mysql01
uuid:           4a4c59a7-ee3f-c781-96e4-288f2862f011
os type:              linux
state:          blocked
cpu(s):         1
cpu time:             11.0s
max memory:     512000 kb
used memory:    512000 kb
顯​示​主​機​資​訊​
若​要​顯​示​主​機​的​相​關​資​訊​:
# virsh nodeinfo
virsh nodeinfo 指​令​輸​出​的​範​例​:
# virsh nodeinfo
CPU model                    x86_64
CPU (s)                      8
CPU frequency                2895 Mhz
CPU socket(s)                2      
Core(s) per socket           2
Threads per core:            2
Numa cell(s)                 1
Memory size:                 1046528 kb
這​會​顯​示​節​點​的​資​訊​,以​及​支​援​虛​擬​化​程​序​的​主​機​。​
顯​示​客​座​端​
透​過​使​用 virsh 來​顯​示​客​座​端​清​單​以​及​它​們​目​前​的​狀​態​:
# virsh list
其​它​可​用​選​項​包​含​:
--inactive 選​項​可​列​出​非​啟​用​中​的​客​座​端​(也​就​是​已​定​義​但​尚​未​啟​用​的​客​座​端​),以​及​
--all 選​項​將​會​列​出​所​有​客​座​端​。​例​如​:
# virsh list --all
 Id Name                 State
----------------------------------
  0 Domain-0             running
  1 Domain202            paused
  2 Domain010            inactive
  3 Domain9600           crashed
來​自​於 virsh list 的​輸​出​被​分​為​下​列​六​個​狀​態​的​其​中​之​一​。​
  • running 狀​態​代​表 CPU 上​正​啟​用​中​的​客​座​端​。​
  • 被​列​為 blocked 的​客​座​端​已​被​封​鎖​,並​且​沒​有​在​執​行​中​或​是​無​法​執​行​。​這​可​能​是​因​為​客​座​端​等​待 I/O(傳​統​的​等​待​狀​態​)或​是​客​座​端​進​入​睡​眠​模​式​所​造​成​的​。​
  • paused 狀​態​會​列​出​被​暫​停​的​網​域​。​若​是​有​位​系​統​管​理​員​使​用​了 virt-manager 中​的 pause 按​鈕​、​xm pausevirsh suspend 的​話​,這​就​有​可​能​會​發​生​。​當​客​座​端​暫​停​時​,它​會​消​耗​記​憶​體​與​其​它​資​源​,不​過​它​無​法​透​過 hypervisor 來​進​行​記​憶​體​與 CPU 資​源​的​排​程​。​
  • shutdown 狀​態​為​正​在​進​行​關​閉​程​序​的​客​座​端​。​客​座​端​會​收​到​一​則​關​閉​訊​號​,並​且​應​該​要​正​常​地​進​行​它​的​作​業​關​閉​程​序​。​這​也​許​無​法​適​用​於​所​有​客​座​端​作​業​系​統​;有​些​作​業​系​統​不​會​回​應​這​些​訊​號​。​
  • 狀​態​為 dying 的​網​域​正​處​於​關​閉​狀​態​中​,在​此​狀​態​下​,網​域​還​未​完​全​關​閉​或​當​機​。​
  • 狀​態​為 crashed 的​客​座​端​在​執​行​時​發​生​了​錯​誤​並​且​已​不​再​運​作​了​。​此​狀​態​只​可​能​在​客​座​端​被​設​為​當​機​時​不​會​重​新​啟​動​的​情​況​下​才​會​發​生​。​
顯​示​虛​擬 CPU 資​訊​
透​過 virsh 來​由​客​座​端​顯​示​虛​擬 CPU 資​訊​:
# virsh vcpuinfo {domain-id, domain-name or domain-uuid}
virsh vcpuinfo 指​令​的​輸​出​範​例​:
# virsh vcpuinfo r5b2-mySQL01
VCPU:           0
CPU:            0
State:          blocked
CPU time:       0.0s
CPU Affinity:   yy
設​定​虛​擬 CPU 的​相​似​性​
設​定​虛​擬 CPU 和​實​體 CPU 的​相​似​性​:
# virsh vcpupin {domain-id, domain-name or domain-uuid} vcpu, cpulist
vcpu 為​虛​擬 VCPU 的​數​量​,而 cpulist 則​會​列​出 CPU 的​實​體​數​量​。​
設​定​虛​擬 CPU 計​數​
透​過 virsh 來​修​改​指​定​給​客​座​端​的 CPU 數​量​:
# virsh setvcpus {domain-name, domain-id or domain-uuid} count
新​的 count 計​數​值​不​可​超​過​當​您​建​立​客​座​端​時​所​指​定​的​數​值​。​
設​定​記​憶​體​配​置​
透​過 virsh 來​修​改​客​座​端​的​記​憶​體​配​置​:
# virsh setmem {domain-id or domain-name} count
您​必​須​以 kb 為​單​位​來​指​定​計​數​。​新​計​數​不​可​超​過​當​您​建​立​客​座​端​時​所​指​定​的​數​值​。​低​於 64 MB 的​數​值​也​許​無​法​運​作​於​大​部​分​客​座​端​作​業​系​統​上​。​較​高​的​最​大​記​憶​體​數​值​不​會​影​響​目​前​啟​用​中​的​客​座​端​,除​非​新​的​數​值​較​低​,因​為​這​會​將​可​用​的​記​憶​體​使​用​率​縮​小​。​
顯​示​客​座​端​的​區​塊​裝​置​資​訊​
請​使​用 virsh domblkstat 來​顯​示​啟​用​中​的​客​座​端​的​區​塊​裝​置​數​據​。​
# virsh domblkstat GuestName block-device
顯​示​客​座​端​網​路​裝​置​資​訊​
使​用 virsh domifstat 來​顯​示​執​行​中​的​客​座​端​的​網​路​介​面​卡​數​據​。​
# virsh domifstat GuestName interface-device 
透​過 virsh 來​遷​移​客​座​端​
客​座​端​可​藉​由​使​用 virsh 來​被​遷​移​至​另​一​部​主​機​上​。​將​網​域​遷​移​至​另​一​部​主​機​上​。​附​加 --live 來​進​行​即​時​遷​移​。​migrate 指​令​接​受​下​列​格​式​的​參​數​:
# virsh migrate --live GuestName DestinationURL
--live 參​數​為​可​選​用​的​參​數​。​請​附​加 --live 參​數​來​進​行​即​時​遷​移​。​
The GuestName parameter represents the name of the guest which you want to migrate.
The DestinationURL parameter is the URL or hostname of the destination system. The destination system must run the same version of Fedora, be using the same hypervisor and have libvirt running.
Once the command is entered you will be prompted for the root password of the destination system.
管​理​虛​擬​網​路​
此​部​份​涵​蓋​了​如​何​透​過 virsh 指​令​來​管​理​虛​擬​網​路​。​若​要​列​出​虛​擬​網​路​請​輸​入​:
# virsh net-list
您​可​以​使​這​項​指​令​來​產​生​類​似​以​下​的​輸​出​:
# virsh net-list
Name                 State      Autostart
-----------------------------------------
default              active     yes      
vnet1                     active     yes      
vnet2                     active     yes
欲​瀏​覽​特​定​虛​擬​網​路​的​網​路​資​訊​:
# virsh net-dumpxml NetworkName
這​會​以 XML 格​式​顯​示​有​關​於​所​指​定​的​虛​擬​網​路​之​資​訊​:
# virsh net-dumpxml vnet1
<network>
  <name>vnet1</name>
  <uuid>98361b46-1581-acb7-1643-85a412626e70</uuid>
  <forward dev='eth0'/>
  <bridge name='vnet0' stp='on' forwardDelay='0' />
  <ip address='192.168.100.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.100.128' end='192.168.100.254' />
    </dhcp>
  </ip>
</network>
其​它​使​用​來​管​理​虛​擬​網​路​的 virsh 指​令​還​包​括​:
  • virsh net-autostart 網​路​名​稱​ — 自​動​啟​用​一​個​被​指​定​為​網​路​名​稱​的​網​路​。​
  • virsh net-create XMLfile — 透​過​使​用​現​有​的 XML 檔​案​來​產​生​並​啟​用​一​個​新​的​網​路​。​
  • virsh net-define XMLfile — 透​過​現​有​的 XML 檔​案​產​生​新​的​網​路​裝​置​不​過​不​啟​用​該​裝​置​。​
  • virsh net-destroy 網​路​名​稱​ — 刪​除​一​個​被​指​定​為​網​路​名​稱​的​網​路​。​
  • virsh net-name networkUUID — 將​一​個​指​定​的 networkUUID 轉​換​成​網​路​名​稱​。​
  • virsh net-uuid 網​路​名​稱​ — 將​一​個​指​定​的​網​路​名​稱​轉​換​成​網​路 UUID。​
  • virsh net-start 未​啟​用​的​網​路​之​名​稱​ — 啟​用​一​個​未​啟​用​的​網​路​。​
  • virsh net-undefine 未​啟​用​的​網​路​之​名​稱​ — 將​未​啟​用​的​網​路​的​定​義​移​除​。​

章 16. 使​用​虛​擬​主​機​管​理​程​式​(Virtual Machine Manager,virt-manager)來​管​理​客​座​端​

本​章​節​將​描​述​虛​擬​主​機​管​理​程​式​(virt-manager)視​窗​、​對​話​方​塊​與​各​種​不​同​的 GUI 控​制​。​
virt-manager 提​供​了​您​系​統​上​以​及​許​端​機​器​上​的 hypervisor 和​客​座​端​的​圖​形​化​視​點​。​您​可​使​用 virt-manager 來​定​義​半​虛​擬​化​和​完​整​虛​擬​化​的​客​座​端​。​virt-manager 可​進​行​虛​擬​化​管​理​工​作​,這​包​含​了​:
  • 分​配​記​憶​體​、​
  • 分​配​虛​擬 CPU、​
  • 監​控​作​業​效​能​、​
  • 儲​存​和​復​原​、​暫​停​和​恢​復​,以​及​關​閉​和​啟​動​虛​擬​化​客​座​端​、​
  • 連​至​文​字​與​圖​形​化​主​控​台​,以​及​
  • 即​時​與​離​線​遷​移​。​

16.1. 開​放​連​線​視​窗​

此​視​窗​將​會​出​現​並​提​示​使​用​者​選​擇​一​個 hypervisor session。​無​特​權​的​使​用​者​只​可​進​行​唯​讀​的 session。​Root 使​用​者​可​啟​用​一​個​含​有​完​整​讀​寫​權​限​的 session。​一​般​使​用​上​請​選​擇​本​機 Xen 主​機​選​項​或​是 QEMU(KVM)。​
虛​擬​主​機​管​理​程​式​連​接​視​窗​
圖形 16.1. 虛​擬​主​機​管​理​程​式​連​接​視​窗​

16.2. 虛​擬​主​機​管​理​程​式​的​主​視​窗​

主​視​窗​會​顯​示​所​有​執​行​中​的​虛​擬​主​機​以​及​目​前​分​配​給​他​們​的​資​源​(包​括​網​域 0)。​您​可​以​選​擇​要​顯​示​哪​一​個​欄​位​。​雙​點​欲​選​擇​的​虛​擬​主​機​就​會​顯​示​對​應​的​主​控​台​。​選​擇​虛​擬​主​機​然​後​雙​點​詳​細​資​訊​鍵​,然​後​視​窗​會​顯​示​該​主​機​的​詳​細​資​訊​。​您​也​可​以​存​取​檔​案​選​單​來​建​立​新​的​虛​擬​主​機​。​
虛​擬​主​機​管​理​程​式​的​主​要​視​窗​
圖形 16.2. 虛​擬​主​機​管​理​程​式​的​主​要​視​窗​

16.3. 虛​擬​主​機​管​理​程​式​的​詳​情​視​窗

這​個​視​窗​會​顯​示​客​座​端​即​時​資​源​利​用​資​料​的​圖​形​與​數​據​,這​個​資​料​能​藉​由 virt-manager 虛​擬​化​虛​擬​主​機​管​理​程​式​中​取​得​。​UUID 欄​位​顯​示​了​虛​擬​主​機​的​全​域​唯​一​識​別​碼​(globally unique identifier)。​
virt-manager 詳​細​資​料​視​窗​
圖形 16.3. virt-manager 詳​細​資​料​視​窗​

16.4. 虛​擬​主​機​圖​形​主​控​台

這​個​視​窗​會​顯​示​虛​擬​主​機​的​圖​形​主​控​台​。​半​虛​擬​化​和​完​整​虛​擬​化​的​客​座​端​使​用​了​不​同​的​技​巧​來​匯​出​其​本​機​虛​擬​幀​幅​緩​衝​器​(local virtual framebuffers),但​這​兩​項​技​術​在​虛​擬​主​機​管​理​程​式​的​主​控​台​上​都​是​使​用 VNC 來​啟​用​的​。​如​果​您​的​虛​擬​主​機​設​定​為​需​授​權​的​話​,虛​擬​主​機​圖​形​主​控​台​在​顯​示​前​會​先​提​示​您​輸​入​一​組​密​碼​。​
圖​形​化​主​控​台​視​窗​
圖形 16.4. 圖​形​化​主​控​台​視​窗​

安​全​性​和 VNC 上​的​重​點​

許​多​安​全​性​上​的​專​員​都​將 VNC 視​為​不​安​全​,不​過​,VNC 已​經​被​進​行​了​幾​項​改​變​來​使​它​可​安​全​地​運​用​於 Fedora 上​的​虛​擬​化​。​客​座​端​機​器​只​會​監​聽​本​機​主​機​(dom0)的 loopback 位​址​(127.0.0.1)。​這​能​確​保​只​有​那​些​在​主​機​上​持​有 shell 權​限​的​使​用​者​,可​透​過 VNC 來​存​取 virt-manager 與​虛​擬​主​機​。​
遠​端​管​理​可​藉​由​依​照 章 13, 虛​擬​化​客​座​端​的​遠​端​管​理​ 中​的​指​示​來​進​行​。​TLS 可​針​對​於​客​座​端​管​理​,以​及​主​機​系​統​管​理​提​供​企​業​級​的​安​全​性​。​
您​的​本​機​電​腦​可​使​用​攔​截​組​合​鍵​(例​如​, Ctrl+Alt+F11)來​預​防​他​們​被​傳​送​至​客​座​端​機​器​。​您​可​以​使​用 virt-manager 的​相​黏​鍵​功​能​來​傳​送​這​些​序​列​。​您​必​須​按​下​任​一​修​改​鍵​(如 Ctrl 或 Alt)三​次​,然​後​這​個​您​所​指​定​的​鍵​將​會​啟​動​直​到​您​按​下​下​一​個​非​修​改​鍵​。​接​著​,您​可​輸​入​按​鍵​序​列​「​Ctrl Ctrl Ctrl Alt+F1」​來​將 Ctrl-Alt-F11 傳​送​至​客​座​端​。​

16.5. Starting virt-manager

若​要​啟​用 virt-manager session,請​開​啟​應​用​程​式​選​單​、​系​統​工​具​選​單​,然​後​再​點​選​虛​擬​主​機​管​理​員​virt-manager
virt-manager 的​主​視​窗​將​會​出​現​。​
啟​用 virt-manager
圖形 16.5. 啟​用 virt-manager

此​外​,virt-manager 也​可​如​下​列​指​令​所​示​範​地​透​過​使​用 ssh 來​遠​端​地​啟​用​:
ssh -X 主​機​位​址​[remotehost]# virt-manager
我​們​之​後​將​在 節 13.1, “透​過​使​用 SSH 來​進​行​遠​端​管​理​” 中​詳​細​討​論​如​何​使​用 ssh 來​管​理​虛​擬​機​器​和​主​機​。​

16.6. 復​原​已​儲​存​的​機​器

在​您​啟​用​虛​擬​主​機​管​理​員​之​後​,所​有​於​系​統​上​的​虛​擬​主​機​都​會​顯​示​於​主​視​窗​中​。​Domain0 為​您​的​主​機​系​統​。​如​果​沒​有​任​何​主​機​被​顯​示​出​,這​就​表​示​目​前​系​統​尚​無​主​機​執​行​中​。​
復​原​之​前​已​儲​存​的 session:
  1. 請​由​檔​案​選​單​中​選​取​復​原​一​部​儲​存​的​主​機​。​
    復​原​一​部​虛​擬​主​機​
    圖形 16.6. 復​原​一​部​虛​擬​主​機​

  2. 復​原​虛​擬​主​機​主​視​窗​將​會​出​現​。​
  3. 導​引​至​正​確​的​目​錄​然​後​選​取​已​儲​存​的 session 檔​案​。​
  4. 點​選​開​啟​。​
已​儲​存​的​虛​擬​系​統​會​出​現​在​虛​擬​主​機​管​理​員​的​主​視​窗​中​。​
已​復​原​的​虛​擬​主​機​管​理​員 session
圖形 16.7. 已​復​原​的​虛​擬​主​機​管​理​員 session

16.7. 顯​示​客​座​端​詳​細​資​訊​

您​可​以​使​用​虛​擬​主​機​監​控​程​式​(Virtual Machine Monitor)來​瀏​覽​您​系​統​上​任​何​虛​擬​主​機​的​活​動​資​料​資​訊​。​
若​要​檢​視​虛​擬​系​統​的​詳​細​資​料​:
  1. 請​在​虛​擬​主​機​管​理​主​視​窗​中​,選​取​您​欲​檢​視​的​虛​擬​主​機​。​
    選​取​欲​顯​示​的​虛​擬​主​機
    圖形 16.8. 選​取​欲​顯​示​的​虛​擬​主​機

  2. 請​由​虛​擬​主​機​管​理​員​的​編​輯​選​單​中​選​取​主​機​詳​細​資​料​(或​點​選​虛​擬​主​機​管​理​員​主​視​窗​下​方​的​詳​細​資​料​按​鈕​)。​
    顯​示​虛​擬​主​機​詳​細​資​料​的​選​單​
    圖形 16.9. 顯​示​虛​擬​主​機​詳​細​資​料​的​選​單​

    虛​擬​主​機​詳​細​資​料​總​覽​的​視​窗​將​會​出​現​。​這​個​視​窗​總​結​了​您​所​指​定​的​網​域​之 CPU 和​記​憶​體​使​用​率​。​
    顯​示​客​座​端​詳​細​資​料​總​覽​
    圖形 16.10. 顯​示​客​座​端​詳​細​資​料​總​覽​

  3. 請​在​虛​擬​主​機​詳​細​資​料​視​窗​上​點​選​硬​體​分​頁​。​
    虛​擬​主​機​硬​體​詳​細​資​料​視​窗​將​會​出​現​。​
    顯​示​客​座​端​硬​體​詳​細​資​料
    圖形 16.11. 顯​示​客​座​端​硬​體​詳​細​資​料

  4. 請​在​硬​體​分​頁​上​點​選​處​理​器​來​檢​視​或​更​改​目​前​的​處​理​器​配​置​。​
    處​理​器​配​置​面​板​
    圖形 16.12. 處​理​器​配​置​面​板​

  5. 請​在​硬​體​分​頁​上​點​選 記​憶​體​來​檢​視​或​更​改​目​前​的 RAM 記​憶​體​配​置​。​
    顯​示​記​憶​體​配​置​
    圖形 16.13. 顯​示​記​憶​體​配​置​

  6. 請​在​硬​體​分​頁​上​點​選​磁​碟​來​檢​視​或​更​改​目​前​的​硬​碟​組​態​設​定​。​
    顯​示​磁​碟​的​組​態​設​定​
    圖形 16.14. 顯​示​磁​碟​的​組​態​設​定​

  7. 請​在​硬​體​分​頁​上​點​選​網​路​來​檢​視​或​更​改​目​前​的​網​路​組​態​設​定​。​
    顯​示​網​路​的​組​態​設​定​
    圖形 16.15. 顯​示​網​路​的​組​態​設​定​

16.8. 狀​態​監​控​

您​可​以​使​用​虛​擬​主​機​管​理​原​來​修​改​虛​擬​系​統​狀​態​監​控​。​
若​要​設​定​狀​態​監​控​並​啟​用​主​控​台​:
  1. 請​由​編​輯​選​單​中​選​取​偏​好​設​定​。​
    修​改​客​座​端​上​的​偏​好​設​定​
    圖形 16.16. 修​改​客​座​端​上​的​偏​好​設​定​

    虛​擬​主​機​管​理​員​的​偏​好​設​定​視​窗​將​會​出​現​。​
  2. 請​在​狀​態​監​控​部​份​的​選​取​方​塊​中​指​定​您​希​望​系​統​進​行​更​新​的​時​間​(以​秒​為​單​位​)。​
    設​定​狀​態​監​控​
    圖形 16.17. 設​定​狀​態​監​控​

  3. 請​在​主​控​區​上​指​定​如​何​開​啟​主​控​台​並​指​定​輸​入​裝​置​。​

16.9. 顯​示​客​座​端​的​標​識​符​號​

如​欲​檢​視​您​系​統​上​所​有​虛​擬​主​機​的​客​座​端 ID:
  1. 請​由​檢​視​選​單​中​選​取​網​域 ID 核​取​方​塊​。​
    檢​視​客​座​端 ID
    圖形 16.18. 檢​視​客​座​端 ID

  2. 虛​擬​主​機​管​理​程​式​會​將​您​系​統​上​所​有​網​域​的​網​域 ID 列​出​。​
    顯​示​網​域 ID
    圖形 16.19. 顯​示​網​域 ID

16.10. 顯​示​客​座​端​的​狀​態

瀏​覽​所​有​系​統​上​虛​擬​主​機​的​狀​態​:
  1. 請​由​檢​視​選​單​中​選​取​狀​態​核​取​方​塊​。​
    選​擇​虛​擬​主​機​的​狀​態​
    圖形 16.20. 選​擇​虛​擬​主​機​的​狀​態​

  2. 虛​擬​主​機​管​理​程​式​會​將​您​系​統​上​所​有​虛​擬​主​機​的​狀​態​列​出​。​
    顯​示​虛​擬​主​機​的​狀​態​
    圖形 16.21. 顯​示​虛​擬​主​機​的​狀​態​

16.11. 顯​示​虛​擬 CPU

欲​檢​視​您​系​統​上​所​有​虛​擬​主​機​的​虛​擬 CPU 數​量​:
  1. 請​在​檢​視​選​單​中​選​取​虛​擬 CPU 的​核​取​方​塊​。​
    選​擇​虛​擬 CPU 的​選​項​
    圖形 16.22. 選​擇​虛​擬 CPU 的​選​項​

  2. 虛​擬​主​機​管​理​員​會​將​系​統​上​所​有​虛​擬​主​機​的​虛​擬 CPU 列​出​。​
    顯​示​虛​擬 CPU
    圖形 16.23. 顯​示​虛​擬 CPU

16.12. 顯​示 CPU 使​用​率​

欲​檢​視​您​系​統​上​所​有​虛​擬​主​機​的 CPU 使​用​率​:
  1. 請​在​檢​視​選​單​中​選​取 CPU 使​用​率​核​取​方​塊​。​
    選​擇 CPU 使​用​量​
    圖形 16.24. 選​擇 CPU 使​用​量​

  2. 虛​擬​主​機​管​理​員​會​將​系​統​上​所​有​虛​擬​主​機​的 CPU 使​用​比​率​列​出​。​
    顯​示 CPU 使​用​率​
    圖形 16.25. 顯​示 CPU 使​用​率​

16.13. 顯​示​記​憶​體​使​用​率

檢​視​系​統​上​所​有​虛​擬​主​機​的​記​憶​體​使​用​率​:
  1. 請​在​檢​視​選​單​中​選​取​記​憶​體​使​用​率​核​取​方​塊​。​
    選​擇​記​憶​體​使​用​率​
    圖形 16.26. 選​擇​記​憶​體​使​用​率​

  2. 虛​擬​主​機​管​理​員​會​將​系​統​上​所​有​虛​擬​主​機​的​記​憶​體​(以 MB 為​單​位​)使​用​比​率​列​出​。​
    顯​示​記​憶​體​使​用​率​
    圖形 16.27. 顯​示​記​憶​體​使​用​率​

16.14. 管​理​虛​擬​網​路​

欲​在​您​的​系​統​上​設​定​虛​擬​網​路​:
  1. 請​在​編​輯​選​單​中​選​取​主​機​資​料​。​
    選​擇​某​個​主​機​的​詳​細​資​料​
    圖形 16.28. 選​擇​某​個​主​機​的​詳​細​資​料​

  2. 這​將​會​開​啟​主​機​資​料​選​單​。​請​點​選​虛​擬​網​路​分​頁​。​
    虛​擬​網​路​組​態​設​定​
    圖形 16.29. 虛​擬​網​路​組​態​設​定​

  3. 所​有​可​用​的​虛​擬​網​路​都​會​列​在​選​單​左​邊​的​方​塊​上​。​您​可​以​從​這​個​方​塊​選​擇​虛​擬​網​路​組​態​設​定​並​加​以​編​輯​。​

16.15. 建​立​一​個​虛​擬​網​路​

在​您​的​系​統​上​建​立​一​個​虛​擬​網​路​:
  1. 請​開​啟​主​機​詳​細​資​料​選​單​(請​參​閱 節 16.14, “管​理​虛​擬​網​路​”)並​按​下​新​增​按​鈕​。​
    虛​擬​網​路​組​態​設​定​
    圖形 16.30. 虛​擬​網​路​組​態​設​定​

    如​此​將​會​開​啟​建​立​新​的​虛​擬​網​路​選​單​。​請​按​下​「​下​一​步​」​來​繼​續​進​行​。​
    建​立​新​的​虛​擬​網​路​
    圖形 16.31. 建​立​新​的​虛​擬​網​路​

  2. 替​虛​擬​網​路​輸​入​適​合​的​名​稱​然​後​點​選​「​下​一​步​」​。​
    為​虛​擬​系​統​命​名​
    圖形 16.32. 為​虛​擬​系​統​命​名​

  3. 請​為​您​的​虛​擬​網​路​輸​入​一​組 IPv4 位​址​空​間​然​後​按​下​「​下​一​步​」​。​
    選​擇​一​組 IPv4 位​址​空​間​
    圖形 16.33. 選​擇​一​組 IPv4 位​址​空​間​

  4. 請​經​由​指​定 IP 位​置​的​起​始​與​結​尾​範​圍​來​定​義​您​的​虛​擬​網​路​的 DHCP 範​圍​。​請​點​選​「​下​一​步​」​來​繼​續​進​行​。​
    選​擇 DHCP 範​圍​
    圖形 16.34. 選​擇 DHCP 範​圍​

  5. 選​擇​虛​擬​網​路​連​接​到​實​體​網​路​的​方​式​。​
    連​至​實​體​網​路​
    圖形 16.35. 連​至​實​體​網​路​

    如​果​您​選​擇​了​發​送​到​實​體​網​路​,請​將​目​的​選​擇​為 NAT 至​任​何​實​體​裝​置​或​是 NAT 至​實​體​裝​置 eth0。​
    Click Forward to continue.
  6. 您​現​在​已​能​夠​建​立​網​路​。​請​確​認​您​的​網​路​組​態​設​定​並​點​選​完​成​。​
    已​準​備​好​建​立​網​路​
    圖形 16.36. 已​準​備​好​建​立​網​路​

  7. 新​的​虛​擬​網​路​現​在​已​能​透​過​主​機​資​料​選​單​上​的​虛​擬​網​路​分​頁​中​取​得​。​
    新​的​虛​擬​網​路​已​能​夠​使​用​
    圖形 16.37. 新​的​虛​擬​網​路​已​能​夠​使​用​

部 V. Tips and Tricks

章 17. 提​示​和​技​巧​

這​些​章​節​包​含​著​改​善​虛​擬​化​效​能​的​有​用​提​示​與​技​巧​。​

17.1. 自​動​啟​動​客​座​端​

本​節​包​括​了​如​何​在​主​系​統​開​機​時​,讓​虛​擬​客​座​端​自​動​啟​動​的​方​法​。​
本​範​例​使​用 virsh 來​設​定​客​座​端 TestServer,使​其​在​主​系​統​開​機​時​自​動​啟​動​。​
# virsh autostart TestServer
Domain TestServer marked as autostarted
現​在​這​客​座​端​會​在​主​系​統​開​機​時​,自​動​啟​動​。​
要​讓​客​座​端​不​在​開​機​時​自​動​啟​動​,請​使​用 --disable 參​數​
# virsh autostart --disable TestServer
Domain TestServer unmarked as autostarted
主​系​統​啟​動​時​,這​客​座​端​不​再​會​自​動​啟​動​。​

17.2. 在 KVM 與 Xen hypervisor 之​間​互​換​

本​節​涵​蓋​了​在 KVM 與 Xen hypervisor 之​間​互​換​的​資​訊​。​
Fedora 一​次​只​能​支​援​一​種 hypervisor 執​行​。​

在 hypervisor 之​間​轉​移​虛​擬​客​座​端​

目​前​還​沒​有​應​用​程​式​可​以​將 Xen 與 KVM 的​客​座​端​互​相​轉​換​。​客​座​端​只​能​使​用​建​立​時​使​用​的 hypervisor 類​型​。​

17.2.1. 從 Xen 到 KVM

以​下​內​容​涵​蓋​了​從 Xen 轉​移​到 KVM hypervisor 的​步​驟​。​這​步​驟​假​定 kernel-xen 套​件​已​經​安​裝​並​啟​用​。​
  1. 安​裝 KVM 套​件​

    如​果​您​尚​未​安​裝 kvm 套​件​,請​先​安​裝​。​
    # yum install kvm
    
  2. 檢​查​使​用​中​的​核​心​版​本​

    kernel-xen 套​件​可​能​已​經​安​裝​。​請​使​用 uname 指​令​來​確​定​正​在​執​行​的​是​哪​個​核​心​:
    $ uname -r
    2.6.23.14-107.fc8xen
    
    目​前​在​系​統​上​運​作​中​的 kernel 為​「​2.6.23.14-107.fc8xen」​。​如​果​運​作​中​的​是​預​設​的 kernel,「​2.6.23.14-107.fc8」​的​話​,您​便​可​跳​過​這​項​子​步​驟​。​
    1. 將 Xen 核​心​改​成​預​設​核​心​

      grub.conf 檔​案​設​定​了​開​機​時​使​用​的​核​心​。​要​改​變​預​設​的​核​心​,請​編​輯 /boot/grub/grub.conf 檔​案​,如​下​所​示​:
      default=1
      timeout=5
      splashimage=(hd0,0)/grub/splash.xpm.gz
      hiddenmenu
      title Fedora (2.6.23.14-107.fc8)
              root (hd0,0)
              kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
              initrd /initrd-2.6.23.14-107.fc8.img
      title Fedora (2.6.23.14-107.fc8xen)
              root (hd0,0)
              kernel /xen.gz-2.6.23.14-107.fc8
              module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
              module /initrd-2.6.23.14-107.fc8xen.img
      
      請​注​意 default=1 參​數​。​這​會​讓 GRUB 開​機​載​入​程​式​啟​動​第​二​個​項​目​,也​就​是 Xen 核​心​。​請​將​其​改​成​預​設​核​心​的 0(或​其​他​適​用​於​預​設​核​心​的​值​):
      default=0
      timeout=5
      splashimage=(hd0,0)/grub/splash.xpm.gz
      hiddenmenu
      title Fedora (2.6.23.14-107.fc8)
              root (hd0,0)
              kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
              initrd /initrd-2.6.23.14-107.fc8.img
      title Fedora (2.6.23.14-107.fc8xen)
              root (hd0,0)
              kernel /xen.gz-2.6.23.14-107.fc8
              module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
              module /initrd-2.6.23.14-107.fc8xen.img
      
  3. 重​新​開​機​,載​入​新​的​核​心​

    重​新​開​機​。​電​腦​會​用​預​設​核​心​開​機​。​KVM 模​組​應​該​會​與​核​心​一​起​自​動​載​入​。​請​檢​查 KVM 是​否​已​經​執​行​:
    $ lsmod | grep kvm
    kvm_intel              85992  1 
    kvm                   222368  2 ksm,kvm_intel
    
    如​果​運​作​正​常​,您​會​看​到 kvm 模​組​與 kvm_intelkvm_amd 模​組​之​一​。​

17.2.2. 從 KVM 到 Xen

以​下​步​驟​涵​蓋​了​從 KVM 轉​為 Xen hypervisor 的​步​驟​。​這​步​驟​假​設 kvm 套​件​已​經​安​裝​並​啟​用​。​
  1. 安​裝 Xen 套​件​

    如​果​您​尚​未​安​裝 kernel-xenxen 套​件​,請​安​裝​之​。​
    # yum install kernel-xen xen
    
    kernel-xen 套​件​可​能​已​經​安​裝​,但​是​尚​未​啟​用​。​
  2. 檢​查​使​用​中​的​核​心​版​本​

    請​使​用 uname 指​令​,確​定​執​行​中​的​套​件​為​何​。​
    $ uname -r
    2.6.23.14-107.fc8
    
    目​前​運​作​中​的​核​心​是​「​2.6.23.14-107.fc8」​。​這​是​預​設​的​核​心​。​如​果​核​心​的​檔​名​最​後​有​個 xen(例​如 2.6.23.14-107.fc8xen),那​表​示 Xen kernel 現​在​已​在​運​作​中​,並​且​您​將​可​以​跳​過​這​項​子​步​驟​。​
    1. 將​預​設​核​心​改​為 Xen 核​心​

      grub.conf 檔​案​設​定​了​開​機​時​使​用​的​核​心​。​要​改​變​預​設​的​核​心​,請​編​輯 /boot/grub/grub.conf 檔​案​,如​下​所​示​:
      default=0
      timeout=5
      splashimage=(hd0,0)/grub/splash.xpm.gz
      hiddenmenu
      title Fedora (2.6.23.14-107.fc8)
              root (hd0,0)
              kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
              initrd /initrd-2.6.23.14-107.fc8.img
      title Fedora (2.6.23.14-107.fc8xen)
              root (hd0,0)
              kernel /xen.gz-2.6.23.14-107.fc8
              module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
              module /initrd-2.6.23.14-107.fc8xen.img
      
      請​注​意 default=0 參​數​。​這​會​讓 GRUB 開​機​載​入​程​式​啟​動​第​一​個​項​目​,也​就​是​預​設​核​心​。​請​將​其​改​成​預​設​核​心​的 1(或​其​他​適​用​於​預​設​核​心​的​值​):
      default=1
      timeout=5
      splashimage=(hd0,0)/grub/splash.xpm.gz
      hiddenmenu
      title Fedora (2.6.23.14-107.fc8)
              root (hd0,0)
              kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
              initrd /initrd-2.6.23.14-107.fc82.6.23.14-107.fc8.img
      title Fedora (2.6.23.14-107.fc8xen)
              root (hd0,0)
              kernel /xen.gz-2.6.23.14-107.fc8
              module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
              module /initrd-2.6.23.14-107.fc8xen.img
      
  3. 重​新​開​機​,載​入​新​的​核​心​

    重​新​開​機​。​電​腦​會​以 Xen 核​心​重​新​啟​動​。​請​以 uname 指​令​檢​查​:
    $ uname -r
    2.6.23.14-107.fc8xen
    
    如​果​其​結​果​有 xen 字​樣​,那​表​示​現​在​執​行​的​是 Xen 核​心​。​

17.3. 使​用 qemu-img

qemu-img 指​令​列​工​具​可​以​用​來​把 Xen 或 KVM 所​使​用​的​多​種​檔​案​系​統​格​式​化​。​qemu-img 可​以​用​來​格​式​化​虛​擬​客​座​端​的​映​像​檔​、​額​外​的​儲​存​裝​置​與​網​路​儲​存​裝​置​。​qemu-img 的​選​項​與​用​法​列​於​以​下​。​
格​式​化​與​建​立​新​的​映​像​檔​與​裝​置​
建​立​新​的​磁​碟​映​像​檔 filename,設​定​大​小 size 與​格​式 format。​
# qemu-img create [-6] [-e] [-b base_image] [-f format] filename [size]
如​果​您​指​定​了 base_image,那​麼​映​像​檔​就​只​會​從 base_image 紀​錄​不​同​之​處​。​在​這​情​況​下​,您​不​用​指​定​大​小​。​base_image 永​遠​無​法​被​修​改​,除​非​您​使​用​了​「​commit」​監​控​指​令​。​
把​現​有​的​映​像​檔​轉​為​另​一​種​格​式​
這​轉​換​選​項​是​用​來​將​可​辨​識​的​一​種​格​式​,轉​為​另​一​種​格​式​。​
指​令​格​式​:
# qemu-img convert [-c] [-e] [-f format] filename [-O output_format] output_filename
將​磁​碟​映​像​檔​(filename)轉​成​格​式​為 output_format 的​磁​碟​映​像​檔​(output_filename)。​您​也​可​以​選​用​加​密​(-e)或​壓​縮​(-c)選​項​。​
只​有​「​qcow」​格​式​支​援​加​密​或​壓​縮​功​能​。​壓​縮​是​唯​讀​的​。​這​表​示​如​果​覆​寫​了​一​個​壓​縮​的​磁​區​,那​麼​重​新​寫​入​後​會​變​成​未​壓​縮​的​資​料​。​
加​密​使​用​的​是​非​常​安​全​的 128 位​元​加​密​金​鑰​之 AES 格​式​。​請​使​用​長​一​點​的​密​碼​(十​六​個​字​母​)以​取​得​最​佳​防​護​。​
在​使​用​可​變​換​大​小​的​格​式​(例​如 qcowcow)時​,轉​換​映​像​檔​可​以​有​效​地​讓​映​像​檔​更​小​。​程​式​會​偵​測​並​壓​縮​空​的​磁​區​。​
取​得​映​像​檔​的​資​訊​
info 參​數​會​顯​示​磁​碟​映​像​檔​的​資​訊​。​info 選​項​的​格​式​如​下​:
# qemu-img info [-f format] filename
這​會​提​供​關​於​磁​碟​映​像​檔 filename 的​資​訊​。​利​用​這​項​指​令​可​得​知​磁​碟​的​保​留​空​間​(有​可​能​與​顯​示​的​大​小​不​同​)。​如​果 vm 的​快​照​是​存​在​磁​碟​映​像​檔​中​,那​快​照​也​會​被​顯​示​出​來​。​
支​援​的​格​式​
映​像​檔​的​格​式​多​半​會​自​動​偵​測​出​來​。​以​下​是​支​援​的​格​式​:
raw
原​始​(raw)磁​碟​映​像​檔​格​式​(預​設​值​)。​這​格​式​的​優​點​是​簡​單​、​容​易​匯​出​到​所​有​其​他​的​模​擬​器​上​。​如​果​您​的​檔​案​系​統​支​援 hole(例​如 Linux 上​的 ext2 或 ext3;或​是 Windows 的 NTFS),那​麼​只​有​寫​入​的​磁​區​會​佔​據​空​間​。​請​使​用 qemu-image info 或 Unix/Linux 上​的 ls -ls 指​令​以​得​知​映​像​檔​所​使​用​的​真​正​大​小​
qcow2
QEMU 映​像​檔​格​式​,也​是​最​精​細​的​格​式​。​這​格​式​的​映​像​檔​比​較​小​(如​果​您​的​檔​案​系​統​並​不​支​援 holes,例​如 Windows)、​可​選​用 AES 加​密​模​式​、​zlib 檔​案​壓​縮​、​並​支​援​多​種 VM 快​照​。​
qcow
舊​的 QEMU 映​像​檔​格​式​。​為​了​與​舊​版​本​相​容​,故​包​含​在​此​版​本​中​。​
cow
複​製​即​寫​入​(Copy On Write)映​像​檔​格​式​。​cow 格​式​是​為​了​與​之​前​的​版​本​相​容​,所​以​才​納​入​的​。​這​格​式​並​不​適​用​於 Windows。​
vmdk
VMware 3 與 4 相​容​的​格​式​。​
cloop
Linux 壓​縮​的 Loop 映​像​檔​,對​於​用​在​壓​縮​的​現​有​光​碟​片​映​像​檔​非​常​有​用​,例​如 Knoppix 光​碟​片​。​

17.4. 在 KVM 中​超​量​使​用​

KVM hypervisor 支​援​超​量​使​用​(overcommitting)處​理​器​與​記​憶​體​。​超​量​使​用​指​的​是​分​配​超​過​系​統​實​際​資​源​的​虛​擬​處​理​器​或​記​憶​體​。​有​了​處​理​器​超​量​使​用​功​能​,低​使​用​率​的​虛​擬​伺​服​器​或​電​腦​,就​可​以​在​數​量​更​少​的​伺​服​器​上​執​行​,節​省​電​源​與​記​憶​體​。​

支​援 Xen

Xen hypervisor 並​不​支​援​處​理​器​超​量​使​用​功​能​。​在 Xen hypervisor 裡​面​超​量​使​用​處​理​器​,可​能​會​導​致​系​統​不​穩​定​,並​導​致​主​機​與​虛​擬​客​座​端​當​機​。​
超​量​使​用​記​憶​體​
大​部​分​作​業​系​統​與​應​用​程​式​並​不​會​一​直​使​用 100% 的​記​憶​體​。​這​可​以​讓 KVM 為​虛​擬​客​座​端​準​備​更​多​記​憶​體​,甚​至​超​過​實​體​記​憶​體​的​量​。​
以 KVM 來​講​,虛​擬​機​器​皆​為 Linux 程​序​。​KVM hypervisor 上​的​客​座​端​並​沒​有​分​配​到​一​整​區​的​記​憶​體​,而​是​像​程​序​一​樣​地​運​作​。​每​個​程​序​只​有​在​要​求​記​憶​體​時​,才​會​被​分​配​到​所​需​的​資​源​。​KVM 使​用​這​方​式​來​為​客​座​端​分​配​更​多​或​更​少​的​記​憶​體​。​客​座​端​實​際​使​用​的​記​憶​體​,只​比​虛​擬​作​業​系​統​所​顯​示​的​要​多​一​點​。​
當​實​體​記​憶​體​快​用​完​時​,或​者​一​個​程​序​已​經​一​段​時​間​沒​有​運​作​時​,Linux 會​把​這​程​序​所​使​用​的​記​憶​體​置​換​(swap)到​磁​碟​上​。​置​換​空​間​通​常​是​硬​碟​(或​其​他​固​態​磁​碟​)的​一​塊​區​域​,Linux 用​這​區​域​來​延​伸​其​虛​擬​記​憶​體​。​置​換​空​間​的​速​度​明​顯​慢​於​記​憶​體​。​
有​鑑​於 KVM 虛​擬​機​器​是 Linux 作​業​系​統​的​程​序​,因​此​如​果​虛​擬​客​座​端​處​於​閒​置​狀​態​、​或​使​用​量​不​高​,它​所​使​用​的​記​憶​體​可​以​放​到​置​換​空​間​裡​去​。​所​以​分​配​出​去​的​記​憶​體​可​以​高​過​置​換​空​間​與​實​體​記​憶​體​的​總​合​。​但​如​果​虛​擬​客​座​端​都​使​用​到​記​憶​體​的​上​限​,就​有​可​能​產​生​問​題​。​如​果​沒​有​足​夠​的​置​換​空​間​給​虛​擬​機​器​使​用​,將​程​序​置​換​到 pdflush 程​序​的​過​程​就​會​被​啟​動​。​pdflush 會​終​止​(kill)程​序​,釋​放​記​憶​體​,以​避​免​系​統​當​機​。​如​此​一​來​,pdflush 會​導​致​虛​擬​客​座​端​或​其​他​系​統​程​序​損​毀​,導​致​檔​案​系​統​故​障​,讓​虛​擬​客​座​端​無​法​開​機​。​

Warning

如​果​置​換​空​間​不​足​,客​座​端​作​業​系​統​會​被​強​制​關​機​。​這​樣​可​能​會​讓​客​座​端​無​法​運​作​。​要​避​免​這​問​題​,請​不​要​超​量​使​用​置​換​空​間​所​擁​有​的​記​憶​體​。​
置​換​分​割​區​適​用​來​把​不​常​用​的​記​憶​體​區​塊​,移​到​硬​碟​上​面​去​,以​加​速​記​憶​體​效​能​。​預​設​的​置​換​分​割​區​大​小​是​從​記​憶​體​大​小​,以​及​超​量​使​用​的​比​率​來​計​算​的​。​如​果​您​打​算​使​用 KVM 的​超​量​使​用​功​能​,建​議​您​加​大​置​換​分​割​區​的​空​間​。​建​議​的​超​量​使​用​比​例​為 50%(0.5)。​公​式​為​:
(0.5 * 記憶體) + (超量使用的比例 * RAM) = 建議的置換空間大小
Red Hat 知​識​庫​中​含​有​一​份​專​題​描​述​了​如​何​安​全​並​有​效​率​地​決​定 swap 分​割​區​的​大​小 — 請​參​閱 Knowledgebase。​
要​在​虛​擬​客​座​端​上​執​行​比​實​體​記​憶​體​高​十​倍​的​超​量​使​用​比​例​是​可​能​的​。​但​這​只​能​適​用​於​特​定​的​應​用​程​式​負​載​(例​如​使​用​率​低​於 100% 的​桌​面​虛​擬​化​)。​設​定​超​量​使​用​的​比​例​並​沒​有​固​定​的​方​程​式​,您​必​須​在​自​己​的​環​境​中​測​試​,以​自​訂​這​個​比​例​。​
超​量​使​用​虛​擬​處​理​器​
KVM hypervisor 支​援​超​量​使​用​虛​擬​處​理​器​(VCPU)。​只​要​虛​擬​客​座​端​的​負​載​限​制​允​許​,虛​擬​處​理​器​就​可​以​超​量​使​用​。​超​量​使​用 VCPU 時​請​務​必​小​心​,因​為​負​載​接​近 100% 時​,會​導​致​需​求​數​降​低​,或​系​統​暫​時​無​法​回​應​。​
每​個​虛​擬​客​座​端​只​有​一​個​虛​擬​處​理​器​時​,超​量​使​用​的​效​果​最​好​。​Linux 排​程​程​式​對​於​這​種​負​載​,是​非​常​有​效​率​的​。​KVM 可​以​安​全​地​支​援​負​載​低​於 100% 的​客​座​端​,與​虛​擬​處​理​器​的​比​例​達 5。​超​量​使​用​單​虛​擬​處​理​器​的​虛​擬​客​座​端​並​不​是​問​題​。​
您​不​能​在​處​理​器​核​心​的​實​體​數​量​之​外​,在​客​座​端​裡​超​量​使​用​多​處​理​器​。​舉​例​來​說​,擁​有​四​顆​虛​擬​處​理​器​的​客​座​端​,不​能​在​擁​有​雙​核​處​理​器​的​電​腦​上​執​行​。​超​量​使​用​多​處​理​器​會​導​致​系​統​效​能​顯​著​降​低​。​
虛​擬​處​理​器​的​數​量​若​與​實​體​處​理​器​的​數​量​一​致​,那​運​作​起​來​會​如​預​期​。​例​如​在​四​核​心​的​主​機​上​執​行​擁​有​四​個​虛​擬​處​理​器​的​虛​擬​客​座​端​。​並​非​滿​載​的​客​座​端​應​該​能​在​這​種​環​境​中​運​作​無​礙​。​

一​定​要​先​測​試​

在​密​集​測​試​前​,千​萬​不​要​在​正​式​的​系​統​上​,超​量​使​用​記​憶​體​或​處​理​器​。​滿​載​使​用​記​憶​體​或​處​理​器​的​應​用​程​式​,在​超​量​使​用​的​環​境​中​可​能​會​不​夠​穩​定​。​建​置​之​前​請​務​必​測​試​。​

17.5. 修​改 /etc/grub.conf

此​部​份​描​述​了​如​何​安​全​並​正​確​地​更​改​您​的 /etc/grub.conf 檔​案​以​便​使​用​虛​擬​化​核​心​。​您​必​須​使​用 xen 核​心​,才​可​成​功​地​執​行 Xen hypervisor。​請​複​製​您​現​有​的 xen 核​心​項​目​並​確​認​您​複​製​了​所​有​重​要​的​幾​行​,否​則​您​的​系​統​會​在​啟​動​時​產​生​嚴​重​錯​誤​(initrd 的​長​度​將​會​是​「​0」​)。​如​果​您​需​要 xen hypervisor 的​特​定​值​,您​必​須​將​這​個​值​附​加​至​您 grub 項​目​的 xen 那​一​行​之​後​。​
下​列​範​例​來​自​執​行 kernel-xen 套​件​的​系​統​之 grub.conf。​您​系​統​上​的 grub.conf 可​能​會​有​所​不​同​。​下​列​範​例​的​重​要​部​份​在​於 title 那​一​行​。​
#boot=/dev/sda
default=0
timeout=15
#splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console

title Fedora (2.6.23.14-107.fc8xen)
        root (hd0,0)
        kernel /xen.gz-2.6.23.14-107.fc8 com1=115200,8n1
        module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00
        module /initrd-2.6.23.14-107.fc8xen.img

有​關​於​編​輯 grub.conf 上​的​重​點​...

您​的 grub.conf 若​先​前​被​手​動​編​輯​過​,或​是​從​其​它​範​例​所​複​製​過​來​的​話​,它​可​能​會​看​起​來​非​常​地​不​同​。​
若​要​設​置 boot time 時​分​配​給​您​主​機​系​統 256MB 的​記​憶​體​數​量​,您​必​須​附​加 dom0_mem=256M 至​您​的 grub.conf 中​的 xen 一​行​上​。​以​下​為​修​改​於​先​前​範​例​中​的 grub 配​置​檔​案​版​本​:
#boot=/dev/sda
default=0
timeout=15
#splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console

title Fedora (2.6.23.14-107.fc8xen)
        root (hd0,0)
        kernel /xen.gz-2.6.23.14-107.fc8 com1=115200,8n1 dom0_mem=256MB
        module /vmlinuz-2.6.23.14-107.fc8xen ro
        root=/dev/VolGroup00/LogVol00
        module /initrd-2.6.23.14-107.fc8xen.img

17.6. 驗​證​虛​擬​化​延​伸​

請​使​用​本​節​來​判​斷​您​的​硬​體​是​否​擁​有​虛​擬​化​延​伸​功​能​。​虛​擬​化​延​伸​功​能​(Intel VT 或 AMD-V)是​完​整​虛​擬​化​所​需​的​功​能​。​

沒​有​虛​擬​化​延​伸​的​話​,還​可​以​使​用​虛​擬​化​功​能​嗎​?

如​果​您​的​硬​體​沒​有​虛​擬​化​延​伸​,您​可​以​利​用 fedora kernel-xen 套​件​來​使​用 Xen 半​虛​擬​化​功​能​。​
請​執​行​以​下​指​令​,驗​證​處​理​器​是​否​有​虛​擬​化​延​伸​:
$ grep -E 'svm|vmx' /proc/cpuinfo
以​下​輸​出​包​含​了 vmx 的​一​行​,表​示​擁​有 Intel VT 延​伸​的​英​特​爾​處​理​器​:
flags   : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush 
        dts acpi mmx fxsr sse sse2 ss ht  tm syscall lm constant_tsc pni monitor ds_cpl
        vmx est tm2 cx16 xtpr lahf_lm
以​下​輸​出​包​含​了 svm 的​一​行​,表​示​擁​有 AMD-V 延​伸​的 AMD 處​理​器​:
flags   :  fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush
        mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16
        lahf_lm cmp_legacy svm cr8legacy ts fid vid ttp tm stc
「​flags:」​的​內​容​可​能​會​因​為​系​統​上​的​超​執​行​緒​、​多​核​心​、​或​多​處​理​器​,而​重​複​出​現​。​
虛​擬​延​伸​功​能​是​可​以​在 BIOS 中​停​用​的​。​若​虛​擬​延​伸​沒​有​出​現​,或​是​完​整​虛​擬​化​無​法​運​作​,請​參​閱 過程 19.1, “在 BIOS 中​啟​用​虛​擬​化​延​伸​功​能​”。​

17.7. 辨​識​客​座​端​類​型​與​實​做​

下​列 script 可​辨​識​應​用​程​式​或 script 正​在​執​行​的​環​境​是​在​半​虛​擬​化​、​完​整​虛​擬​化​客​座​端​或​是​在 hypervisor 上​。​
#!/bin/bash
declare -i IS_HVM=0
declare -i IS_PARA=0
check_hvm()
{
        IS_X86HVM="$(strings /proc/acpi/dsdt | grep int-xen)"
          if [ x"${IS_X86HVM}" != x ]; then
           echo "Guest type is full-virt x86hvm"
           IS_HVM=1
        fi
}
check_para()
{
        if $(grep -q control_d /proc/xen/capabilities); then
          echo "Host is dom0"
          IS_PARA=1
        else
          echo "Guest is para-virt domU"
          IS_PARA=1
        fi
}
if [ -f /proc/acpi/dsdt ]; then 
        check_hvm
fi

if [ ${IS_HVM} -eq 0 ]; then
        if [ -f /proc/xen/capabilities ] ; then
                check_para
        fi
     fi
if [ ${IS_HVM} -eq 0 -a ${IS_PARA} -eq 0 ]; then
        echo "Baremetal platform"
fi

檢​視​主​機​

欲​檢​視​主​機​,請​使​用 virsh capabilities 指​令​。​

17.8. 產​生​一​個​新​的​獨​特 MAC 位​址​

在​某​些​情​況​下​,您​會​需​要​為​客​座​端​產​生​一​組​新​的​獨​特 MAC 位​址​。​目​前​並​沒​有​能​夠​產​生​新 MAC 位​址​的​指​令​列​工​具​。​下​列​提​供​的 script 可​為​您​的​客​座​端​產​生​新​的 MAC 位​址​。​請​將​該 script 儲​存​至​您​的​客​座​端​為 macgen.py。​現​在​您​將​可​由​此​目​錄​,透​過​使​用 ./macgen.py 來​執​行 script,它​將​會​產​生​一​組​新​的 MAC 位​址​。​類​似​的​範​例​輸​出​如​下​:
$ ./macgen.py 
00:16:3e:20:b0:11
        
#!/usr/bin/python
# macgen.py script to generate a MAC address for virtualized guests on Xen
#
import random
#
def randomMAC():
        mac = [ 0x00, 0x16, 0x3e,
                random.randint(0x00, 0x7f),
                random.randint(0x00, 0xff),
                random.randint(0x00, 0xff) ]
        return ':'.join(map(lambda x: "%02x" % x, mac))
#
print randomMAC()
另​一​個​為​您​的​客​座​端​產​生​新 MAC 位​址​的​方​式​
您​也​能​使​用​內​建​的 python-virtinst 模​組​來​產​生​新​的 MAC 位​址​以​及​使​用​於​客​座​端​配​置​檔​案​中​的 UUID
# echo  'import virtinst.util ; print\
 virtinst.util.uuidToString(virtinst.util.randomUUID())' | python
# echo  'import virtinst.util ; print virtinst.util.randomMAC()' | python
以​上 script 也​能​像​下​列​一​般​地​被​以 script 檔​案​來​實​做​。​
#!/usr/bin/env python
#  -*- mode: python; -*-
print ""
print "New UUID:"
import virtinst.util ; print virtinst.util.uuidToString(virtinst.util.randomUUID())
print "New MAC:"
import virtinst.util ; print virtinst.util.randomMAC()
print ""

17.9. 非​常​安​全​的 ftpd

vsftpd 提​供​了​半​虛​擬​化​客​座​端​安​裝​樹​或​其​它​資​料​的​存​取​權​限​。​若​您​在​安​裝​伺​服​器​時​,並​沒​有​安​裝 vsftpd 的​話​,您​可​透​過​您​安​裝​媒​介​的 Server 目​錄​中​取​得​該 RPM 套​件​,並​透​過​使​用 rpm -ivh vsftpd*.rpm 來​安​裝​它​(請​注​意​,該 RPM 套​件​必​須​位​於​您​目​前​的​目​錄​中​)。​
  1. 若​要​配​置 vsftpd 的​話​,請​透​過​使​用 vipw 來​編​輯 /etc/passwd 並​將 ftp 用​戶​的​家​目​錄​更​改​為​您​希​望​保​留​您​半​虛​擬​化​客​座​端​安​裝​樹​的​目​錄​。​FTP 用​戶​項​目​的​範​例​會​看​似​下​列​:
    ftp:x:14:50:FTP User:/xen/pub:/sbin/nologin
    
  2. 若​要 vsftpd 在​系​統​啟​動​時​自​動​被​啟​用​的​話​,請​使​用 chkconfig 工​具​來​啟​用 vsftpd 的​自​動​啟​用​。​
  3. 請​驗​證 vsftpd 是​否​未​透​過​使​用 chkconfig --list vsftpd 來​啟​用​:
    $ chkconfig --list vsftpd
    vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off
    
  4. 請​執​行 chkconfig --levels 345 vsftpd on 來​在 run level 3、​4 和 5 之​中​自​動​啟​用 vsftpd。​
  5. 請​使​用 chkconfig --list vsftpd 指​令​來​驗​證 vsftdp 是​否​已​被​設​為​會​在​系​統​開​機​時​被​啟​用​:
    $ chkconfig --list vsftpd
    vsftpd          0:off   1:off   2:off   3:on    4:on    5:on    6:off
    
  6. 請​使​用 service vsftpd start vsftpd 來​啟​用 vsftpd 服​務​:
    $service vsftpd start vsftpd
    Starting vsftpd for vsftpd:                  [  OK  ]
    

17.10. 配​置 LUN 的​持​續​性​

此​部​份​涵​蓋​了​如​何​在​客​座​端​中​,以​及​在​含​有​或​未​含​有 multipath 的​主​機​機​器​上​實​做 LUN 的​持​續​性​。​
在​沒​有​多​重​路​徑​的​情​況​下​實​施 LUN 的​持​續​性​
若​您​的​系​統​沒​有​使​用​多​重​路​徑​的​話​,您​可​使​用 udev 來​實​施 LUN 的​持​續​性​。​在​您​的​系​統​中​實​施 LUN 持​續​性​之​前​,請​確​認​您​已​取​得​正​確​的 UUID。​一​旦​您​取​得​了​這​些 UUID 之​後​,您​便​可​透​過​編​輯​位​於 /etc 目​錄​中​的 scsi_id 檔​案​來​配​置 LUN 的​持​續​性​。​當​您​在​文​字​編​輯​器​中​開​啟​了​此​檔​案​後​,您​必​須​將​此​行​更​改​為​註​解​:
# options=-b
然​後​使​用​此​參​數​來​替​代​:
# options=-g
這​能​讓 udev 監​控​所​有​系​統 SCSI 裝​置​並​取​得​被​回​報​的 UUID。​若​要​取​得​系​統​的 UUID,請​使​用 scsi_id 指​令​:
# scsi_id -g -s /block/sdc
*3600a0b80001327510000015427b625e*
較​長​的​字​串​為 UUID。​當​您​新​增​裝​置​至​您​的​系​統​時​,UUID 不​會​改​變​。​您​需​取​得​各​個​裝​置​的 UUID 才​可​為​這​些​裝​置​建​立​規​則​。​若​要​建​立​新​的​裝​置​規​則​,請​編​輯​位​於 /etc/udev/rules.d 目​錄​中​的 20-names.rules 檔​案​。​裝​置​的​命​名​規​則​應​採​用​下​列​格​式​:
# KERNEL="sd*",  BUS="scsi",  PROGRAM="sbin/scsi_id", RESULT="UUID", NAME="devicename"
請​將​您​現​有​的 UUIDdevicename 替​換​成​以​上​已​取​得 UUID 的​項​目​。​您​的​規​則​應​看​似​下​列​:
KERNEL="sd*",  BUS="scsi",  PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e", NAME="mydevicename"
這​會​讓​系​統​啟​用​所​有​和 /dev/sd* 模​式​符​合​的​裝​置​檢​查​給​予​的 UUID。​當​它​發​現​了​符​合​的​裝​置​時​,它​便​會​建​立​一​個​稱​為 /dev/devicename 的​裝​置​節​點​。​在​此​範​例​中​,裝​置​節​點​為 /dev/mydevice 。​最​後​,您​需​要​在 /etc/rc.local 檔​案​中​附​加​這​一​行​:
/sbin/start_udev
在​含​有​多​重​路​徑​的​情​況​下​實​做 LUN 持​續​性​
若​要​在​多​重​路​徑​的​環​境​下​實​施 LUN 的​持​續​性​的​話​,您​必​須​為​多​重​路​徑​裝​置​定​義​別​名​名​稱​。​在​此​範​例​中​,您​必​須​透​過​編​輯​位​於 /etc/ 目​錄​中​的 multipath.conf 檔​案​來​定​義​四​個​裝​置​別​名​:
multipath  {  
             wwid       3600a0b80001327510000015427b625e
             alias      oramp1
}
multipath  {  
             wwid       3600a0b80001327510000015427b6
             alias      oramp2
}
multipath  {  
             wwid       3600a0b80001327510000015427b625e
             alias      oramp3
}
multipath  {  
             wwid       3600a0b80001327510000015427b625e
             alias      oramp4
}
這​定​義​了​四​個 LUN: /dev/mpath/oramp1、​/dev/mpath/oramp2、​/dev/mpath/oramp3,以​及 dev/mpath/oramp4。​裝​置​會​位​於 /dev/mpath 目​錄​中​。​這​些 LUN 名​稱​在​開​機​後​依​然​具​有​持​續​性​,因​為​它​將​別​名​建​立​於 LUN 的 wwid 上​。​

17.11. 停​用​客​座​端​的 SMART 磁​碟​監​控​

SMART 磁​碟​監​控​可​被​停​用​,因​為​我​們​正​在​虛​擬​磁​碟​上​運​作​並​且​實​體​儲​存​庫​是​由​主​機​來​管​理​的​。
/sbin/service smartd stop
/sbin/chkconfig --del smartd

17.12. 複​製​客​座​端​配​置​檔​案​

您​可​複​製​一​份​現​有​的​配​置​檔​案​來​建​立​一​個​全​新​的​客​座​端​。​您​必​須​修​改​客​座​端​配​置​檔​案​的​名​稱​參​數​,接​著​新​的​獨​特​名​稱​便​會​出​現​在 hypervisor 中​並​且​可​透​過​管​理​工​具​來​檢​視​。​您​也​必​須​透​過​使​用 uuidgen 指​令​來​產​生​一​個​全​新​的 UUID。​接​著​您​必​須​針​對​於 vif 項​目​來​為​所​有​客​座​端​定​義​一​個​獨​特​的 MAC 位​址​(若​您​要​由​一​個​現​有​的​客​座​端​上​複​製​客​座​端​配​置​,您​可​建​立​一​個 script 來​處​理​)。​針​對​於 xen 橋​接​的​資​訊​,若​您​將​一​個​現​有​的​客​座​端​配​置​檔​案​移​動​至​另​一​部​新​系​統​上​的​話​,您​必​須​更​新 xenbr 項​目​來​符​合​您​的​本​地​網​路​配​置​。​針​對​於​裝​置​項​目​,您​必​須​修​改​位​於 'disk=' 部​份​中​的​項​目​並​指​向​正​確​的​客​座​端​映​像​檔​。​
您​也​必​須​修​改​您​客​座​端​上​這​些​系​統​配​置​的​設​定​。​您​必​須​修​改 /etc/sysconfig/network 檔​案​的 HOSTNAME 項​目​來​符​合​新​客​座​端​主​機​名​稱​。​
您​必​須​修​改 /etc/sysconfig/network-scripts/ifcfg-eth0 檔​案​的 HWADDR 位​址​以​便​符​合​來​自​於 ifconfig eth0 檔​案​的​輸​出​,並​且​若​您​所​使​用​的​是​靜​態 IP 位​址​的​話​,您​則​需​要​修​改 IPADDR 項​目​。​

17.13. 複​製​一​個​現​有​的​客​座​端​以​及​它​的​配​置​檔​案​

此​部​份​描​述​了​如​何​複​製​一​個​現​有​的​配​置​檔​案​以​便​建​立​新​的​客​座​端​。​您​必​須​注​意​您​客​座​端​的​配​置​檔​案​中​的​一​些​重​要​參​數​並​修​改​它​們​以​便​成​功​複​製​客​座​端​。​
name
hypervisor 已​知​,並​顯​示​於​管​理​工​具​程​式​中​的​客​座​端​名​稱​。​此​項​目​在​您​的​系​統​上​應​是​獨​特​的​。​
uuid
客​座​端​的​獨​特​處​理​方​式​,新​的 UUID 客​透​過​使​用 uuidgen 指​令​來​產​生​。​以​下​為 UUID 的​輸​出​範​例​:
$ uuidgen 
a984a14f-4191-4d14-868e-329906b211e5
vif
  • MAC 位​址​必​須​為​各​個​客​座​端​定​義​獨​特​的 MAC 位​址​。​若​您​使​用​了​標​準​的​工​具​,這​將​會​自​動​被​完​成​。​若​您​是​由​一​個​現​有​的​客​座​端​複​製​客​座​端​配​置​的​話​,您​可​使​用 節 17.8, “產​生​一​個​新​的​獨​特 MAC 位​址​” 這​個 script。​
  • 若​您​正​要​將​一​個​現​有​的​客​座​端​配​置​檔​案​移​動​或​複​製​至​一​個​新​的​主​機​上​,您​必​須​確​認​您​已​調​整​了 xenbr 項​目​以​符​合​您​的​本​地​網​路​配​置​(您​可​透​過​使​用 brctl show 指​令​來​取​得​橋​接​資​訊​)。​
  • 裝​置​項​目​,請​確​認​您​調​整​了 disk= 部​份​中​的​項​目​以​便​指​向​正​確​的​客​座​端​映​像​檔​。​
現​在​,請​調​整​您​客​座​端​上​的​系​統​配​置​設​定​:
/etc/sysconfig/network
請​將 HOSTNAME 項​目​修​改​為​客​座​端​的​新 hostname。​
/etc/sysconfig/network-scripts/ifcfg-eth0
  • 請​將 HWADDR 位​址​修​改​為 ifconfig eth0 的​輸​出​
  • 若​使​用​了​靜​態​的 IP 位​址​請​修​改 IPADDR 項​目​。​

章 18. 建​立​自​訂​化​的 libvirt script

此​部​份​提​供​了​一​些​對​於​欲​透​過​使​用 libvirt 來​編​寫​自​訂​化 script,以​求​便​利​的​編​程​人​員​與​系​統​管​理​員​有​幫​助​的​資​訊​。​
章 17, 提​示​和​技​巧​ 建​議​希​望​使​用 libvirt 來​製​作​新​應​用​程​式​的​編​程​人​員​閱​讀​。​

18.1. 搭​配​使​用 virsh 與 XML 配​置​檔​案​

virsh 可​處​理 XML 配​置​檔​案​。​您​可​能​會​希​望​有​效​地​使​用​它​來​編​寫​擁​有​特​殊​選​項​的​大​型​建​置 script。​您​可​將​定​義​於​一​個 XML 檔​案​中​的​裝​置​新​增​至​運​作​中​的​半​虛​擬​化​客​座​端​上​。​比​方​說​,若​要​將​一​個 ISO 檔​案​新​增​為 hdc 至​一​個​運​作​中​的​客​座​端​上​,請​建​立​一​個 XML 檔​案​:
# cat satelliteiso.xml
<disk type="file" device="disk">
        <driver name="file"/>
        <source file="/var/lib/libvirt/images/rhn-satellite-5.0.1-11-redhat-linux-as-i386-4-embedded-oracle.iso"/>
        <target dev="hdc"/>
        <readonly/>
</disk>
請​執​行 virsh attach-device 來​將​該 ISO 作​為 hdc 來​連​至​一​個​稱​為​「​satellite」​的​客​座​端​上​:
# virsh attach-device satellite satelliteiso.xml

部 VI. Troubleshooting

疑​難​排​解​和​解​決​問​題​的​相​關​介​紹​

以​下​章​節​提​供​的​資​訊​能​幫​助​您​解​決​虛​擬​化​過​程​中​,可​能​會​遇​到​的​問​題​。​

虛​擬​化​的​相​關​重​點​

基​於 bug 和​相​應​的​修​正​會​不​斷​地​產​生​,因​此​您​的​特​定​問​題​也​許​不​會​出​現​在​此​書​中​。​如​欲​取​得​最​新​的​已​知 bug、​問​題​和​相​關​修​正​,請​參​閱​和​您​的​版​本​與​硬​體​架​構​相​應​的 Fedora 發​行​公​告​。​發​行​公​告​可​在 Fedora 網​站​的​文​件​部​份​(http://docs.fedoraproject.org)中​找​到​。​

章 19. Troubleshooting

此​章​節​涵​蓋​了 Fedora 虛​擬​化​上​的​常​見​問​題​和​解​決​方​案​。​

19.1. Loop 裝​置​錯​誤​

若​使​用​了​基​於​檔​案​的​客​座​端​映​像​的​話​,您​可​能​需​要​增​加​已​配​置​的 loop 裝​置​數​量​。​預​設​的​配​置​可​允​許​最​多​達 8 個​啟​用​的 loop 裝​置​。​若​需​要​超​過 8 個​基​於​檔​案​的​客​座​端​或 loop 裝​置​,您​可​在 /etc/modprobe.conf 中​調​整​已​配​置​的 loop 裝​置​數​量​。​請​編​輯 /etc/modprobe.conf 並​將​下​列​一​行​附​加​至​該​檔​案​中​:
options loop max_loop=64
此​範​例​使​用​了 64,不​過​您​可​指​定​另​一​個​數​量​來​設​置 loop 數​值​的​最​大​值​。​您​可​能​也​需​要​在​您​的​系​統​上​實​做 loop 裝​置​支​援​的​客​座​端​。​若​要​使​用 loop 裝​置​支​援​的​客​座​端​來​作​為​半​虛​擬​化​的​客​座​端​,請​使​用 phy: block devicetap:aio 指​令​。​若​要​使​用 loop 裝​置​支​援​的​客​座​端​來​作​為​完​整​虛​擬​化​系​統​的​話​,請​使​用 phy: devicefile: file 指​令​。​

19.2. 在 BIOS 中​啟​用 Intel VT 和 AMD-V 虛​擬​化​硬​體​延​伸​

本​節​描​述​了​如​何​分​辨​硬​體​是​否​有​虛​擬​延​伸​功​能​,同​時​如​果​這​功​能​在 BIOS 中​已​經​停​用​,如​何​啟​用​的​方​法​。​
Intel VT 延​伸​可​以​在 BIOS 中​停​用​。​有​些​筆​記​型​電​腦​在​出​廠​時​,VT 延​伸​功​能​預​設​上​是​停​用​的​。​
使​用 Rev 2 插​槽​的 AMD-V 處​理​器​,其​虛​擬​化​延​伸​功​能​是​無​法​在 BIOS 之​中​停​用​的​。​
有​時​筆​記​型​電​腦​製​造​商​會​將​虛​擬​化​延​伸​功​能​在 BIOS 中​停​用​。​請​參​閱 節 19.2, “在 BIOS 中​啟​用 Intel VT 和 AMD-V 虛​擬​化​硬​體​延​伸​” 以​了​解​如​何​啟​用​已​停​用​的​虛​擬​化​延​伸​功​能​。​
驗​證 BIOS 中​是​否​已​經​啟​用​了​虛​擬​延​伸​功​能​。​Intel® VT 或 AMD-V 的 BIOS 設​定​通​常​位​於​晶​片​組​或​是​處​理​器​選​單​中​。​不​過​這​選​單​名​稱​可​能​會​與​本​手​冊​不​同​,位​於​安​全​性​設​定​或​其​它​非​標​準​的​選​單​下​。​
過程 19.1. 在 BIOS 中​啟​用​虛​擬​化​延​伸​功​能​
  1. 請​重​新​啟​動​電​腦​並​開​啟​系​統​的 BIOS 選​單​。​這​一​般​可​透​過​按​下 delete 或​是 Alt + F4 鍵​來​進​行​。​
  2. 請​選​擇 Restore Defaults(復​原​預​設​值​),然​後​選​擇 Save & Exit(儲​存​並​退​出​)。​
  3. 將​機​器​關​閉​並​拆​除​電​源​。​
  4. 請​將​機​器​啟​動​並​開​啟 BIOS Setup Utility(BIOS 設​定​工​具​)。​開​啟​處​理​器​的​部​份​並​啟​用 Intel®Virtualization TechnologyAMD-V。​這​些​值​在​某​些​機​器​上​也​可​能​會​被​稱​為​Virtualization Extensions(虛​擬​化​延​伸​)。​請​選​擇 Save & Exit。​
  5. 將​機​器​關​閉​並​拆​除​電​源​。​
  6. 執​行 cat /proc/cpuinfo | grep vmx svm。​如​果​您​看​到​任​何​結​果​,表​示​虛​擬​延​伸​功​能​已​經​啟​用​。​如​果​您​看​不​到​任​何​結​果​,那​表​示​您​的​系​統​沒​有​任​何​虛​擬​延​伸​功​能​,或​者 BIOS 並​未​啟​用​這​功​能​。​

額​外​資​源​

欲​更​進​一​步​地​瞭​解​虛​擬​化​與 Linux,請​參​閱​下​列​資​源​。​

A.1. 線​上​資​源​

  • http://www.cl.cam.ac.uk/research/srg/netos/xen/ Xen™ 半​虛​擬​化​主​機​管​理​員​的​專​案​網​站​(Fedora kernel-xen 套​件​就​是​由​此​所​衍​生​的​)。​這​個​網​站​會​維​護​上​游​的 xen 專​案 binary 和​原​始​程​式​碼​,並​且​它​同​時​也​包​含​了​與 xen 還​有​和​它​相​聯​技​術​上​相​關​的​資​訊​、​架​構​總​覽​、​文​件​,和​相​關​連​結​。​
  • Xen 社​群​網​站​
  • http://www.libvirt.org/ libvirt 虛​擬​化 API 的​正​式​網​站​。​
  • http://virt-manager.et.redhat.com/ Virtual Machine Manager(virt-manager)的​專​案​網​站​,是​個​用​來​管​理​虛​擬​機​器​的​圖​形​化​應​用​程​式​。​

A.2. 已​安​裝​的​文​件​

  • /usr/share/doc/xen-<version-number>/ 這​個​目​錄​中​包​含​著​有​關​於 Xen 半​虛​擬​化 hypervisor 以​及​相​關​管​理​工​具​的​資​訊​。​它​同​時​也​包​含​著​各​種​不​同​的​配​置​範​例​、​特​定​硬​體​資​訊​,以​及​目​前​的 Xen 上​游​使​用​者​文​件​。​
  • man virsh and /usr/share/doc/libvirt-<version-number> — 這​裡​面​包​含​著 virsh 虛​擬​機​器​管​理​公​用​程​式​的​次​指​令​與​選​項​以​及​有​關​於 libvirt 虛​擬​化​函​式​庫 API 的​廣​泛​資​訊​。​
  • /usr/share/doc/gnome-applet-vm-<version-number> — 這​裡​面​包​含​著​監​視​與​管​理​本​地​執​行​的​虛​擬​主​機​所​用​的 GNOME 圖​形​化​面​板​的​獨​立​應​用​程​式​的​文​件​。​
  • /usr/share/doc/libvirt-python-<version-number> — 它​提​供​了​有​關​於 libvirt 常​式​庫​上​的 Python 連​結​的​細​節​。​libvirt-python 套​件​能​讓 python 開​發​者​們​建​立​與 libvirt 虛​擬​化​管​理​常​式​庫​有​關​的​程​式​。​
  • /usr/share/doc/python-virtinst-<version-number> — 它​提​供​了​virt-install 指​令​的​說​明​文​件​。​這​項​指​令​能​在​虛​擬​主​機​中​,幫​助​啟​動 Fedora 與 Linux 相​關​發​行​版​的​安​裝​程​序​。​
  • /usr/share/doc/virt-manager-<version-number> — 它​提​供​了​虛​擬​主​機​管​理​程​式​的​文​件​,虛​擬​主​機​管​理​程​式​則​提​供​了​一​個​用​來​管​理​虛​擬​主​機​的​圖​形​化​工​具​。​
空​機​(Bare-metal)
dom0
亦​稱​為 主​機​(Host) 或​是​主​機​作​業​系​統​。​
dom0 代​表​執​行​協​助​進​行​客​座​端​作​業​系​統​虛​擬​化​的 Hypervisor 的 Linux 主​機​事​例​(host instance)。​Dom0 會​自​行​在​實​體​硬​體​上​運​作​、​管​理​實​體​硬​體​,並​為​自​己​與​客​座​端​作​業​系​統​分​配​資​源​。​
Domains
domU 以​及 Domains 兩​者​皆​為​網​域​。​網​域​會​在 Hypervisor 上​運​作​。​「​網​域​」​這​個​名​詞​的​意​思​和 虛​擬​機​器​ 相​似​,並​且​兩​者​技​術​上​來​講​是​可​交​替​使​用​的​。​網​域​也​屬​於​虛​擬​機​器​。​
domU
domU 代​表​在​主​機​系​統​(Domains)上​運​作​的​客​座​端​作​業​系​統​。​
完​整​虛​擬​化​
Xen 與 KVM 皆​能​使​用​完​整​虛​擬​化​。​完​整​虛​擬​化​使​用​了​處​理​器​的​硬​體​功​能​來​提​供​完​整​的​基​本​實​體​系​統​(空​機​(Bare-metal))並​建​立​了​一​個​可​執​行​客​座​端​作​業​系​統​的​新​虛​擬​系​統​。​您​無​須​在​客​座​端​作​業​系​統​中​進​行​任​何​變​更​。​客​座​端​作​業​系​統​與​客​座​端​上​的​所​有​應​用​程​式​皆​不​會​偵​測​到​這​是​個​虛​擬​環​境​,因​此​它​們​將​會​照​常​運​作​。​半​虛​擬​化​則​需​要​使​用​一​個​經​過​修​改​的 Linux 作​業​系​統​。​
完​整​虛​擬​化​
請​參​閱 完​整​虛​擬​化​。​
客​座​端​系​統​
亦​稱​為​客​座​端​、​虛​擬​機​器​或​是 domU。​
Hardware Virtual Machine
Hypervisor
Hypervisor 是​個​軟​體​層​,它​模​擬​了​允​許​多​重​作​業​系​統​執​行​於​相​同​硬​體​上​的​作​業​系​統​之​硬​體​。​Hypervisor 執​行​於​主​機​作​業​系​統​上​並​同​時​允​許​其​它​虛​擬​機​器​在​主​機​的​硬​體​上​運​作​。​
主​機​(Host)
主​機​作​業​系​統​,亦​稱​為 dom0。​
主​機​作​業​系​統​環​境​可​執​行 完​整​虛​擬​化​半​虛​擬​化​ 客​座​端​系​統​的​虛​擬​化​軟​體​。​
I/O
輸​入​/輸​出​的​縮​寫​。​「​I/O」​這​個​名​詞​可​用​來​描​述​任​何​會​將​資​料​在​電​腦​與​週​邊​裝​置​之​間​進​行​傳​輸​的​程​式​、​作​業​或​裝​置​。​每​項​傳​輸​都​是​由​某​個​裝​置​輸​出​並​輸​入​至​另​一​個​裝​置​中​。​鍵​盤​和​滑​鼠​這​類​的​裝​置​都​屬​於​唯​輸​入​的​裝​置​,而​類​似​印​表​機​這​類​的​裝​置​則​屬​於​唯​輸​出​的​裝​置​。​一​部​可​燒​錄​的​光​碟​機​屬​於​可​輸​入​與​輸​出​裝​置​。​
Kernel-based Virtual Machine
KVM(基​於 Kernel 的​虛​擬​機​器​)是​個​在 AMD64 與 Intel 64 硬​體​上​的 Linux 完​整​虛​擬​化​ 解​決​方​案​。​VM 是​個​為​標​準 Linux kernel 所​建​置​的 Linux kernel 模​組​。​KVM 可​執​行​多​個​未​經​修​改​、​未​經​虛​擬​化​的​客​座​端 Windows 與 Linux 作​業​系​統​。​KVM 是​個​使​用​了 libvirt 虛​擬​化​工​具​(virt-manager 和 virsh)的 hypervisor。​
KVM 是​一​組​用​來​針​對​於 Hypervisor 模​組​本​身​管​理​裝​置​、​記​憶​體​以​及​管​理 API 的 Linux kernel 模​組​。​虛​擬​化​客​座​端​會​作​為 Linux 程​序​與​執​行​緒​來​執​行​,並​且​經​由​這​些​模​組​來​進​行​控​制​。​guest density
LUN
邏​輯​單​元​數​量​(Logical Unit Number,LUN)代​表​分​配​至​邏​輯​單​元​(一​個 SCSI 協​定​實​體​)的​號​碼​。​
遷​移​(Migration)
「​遷​移​」​是​個​將​虛​擬​客​座​端​由​一​個​主​機​移​至​另​一​個​主​機​的​程​序​之​名​稱​。​遷​移​程​序​可​離​線​進​行​(客​座​端​將​會​被​暫​停​並​進​行​移​動​)亦​可​即​時​遷​移​(客​座​端​會​在​沒​有​被​暫​停​的​情​況​下​被​移​動​)。​Xen 完​整​虛​擬​化​的​客​座​端​、​Xen 半​虛​擬​化​的​客​座​端​以​及 KVM 完​整​虛​擬​化​的​客​座​端​皆​可​進​行​遷​移​。​
遷​移​屬​於​虛​擬​化​的​關​鍵​功​能​,因​為​軟​體​與​硬​體​完​全​分​離​了​。​遷​移​主​要​用​於​:
  • Load balancing - guests can be moved to hosts with lower usage when a host becomes overloaded.
  • Hardware failover - when hardware devices on the host start to fail, guests can be safely relocated so the host can be powered down and repaired.
  • Energy saving - guests can be redistributed to other hosts and host systems powered off to save energy and cut costs in low usage periods.
  • Geographic migration - guests can be moved to another location for lower latency or in serious circumstances.
共​享​、​連​接​網​路​的​儲​存​裝​置​可​用​來​儲​存​客​座​端​映​像​檔​。​沒​有​共​享​儲​存​裝​置​的​話​將​無​法​進​行​遷​移​。​
An offline migration suspends the guest then moves an image of the guests memory to the destination host. The guest is resumed on the destination host and the memory the guest used on the source host is freed.
離​線​遷​移​程​序​的​所​需​時​間​取​決​於​網​路​頻​寬​和​延​遲​時​間​。​一​個​擁​有 2GB 記​憶​體​的​客​座​端​在​一​個 1 Gbit 的​乙​太​網​路​連​結​上​應​該​會​花​上​幾​秒​鐘​。​
即​時​遷​移​會​讓​客​座​端​持​續​在​來​源​主​機​上​進​行​遷​移​,並​且​不​停​用​該​客​座​端​。​當​映​像​檔​被​傳​送​後​,所​有​經​過​修​改​的​記​憶​體​分​頁​(memory page)皆​會​被​追​蹤​並​傳​送​至​目​的​地​。​記​憶​體​會​隨​著​受​到​變​更​的​分​頁​而​更​新​。​這​項​程​序​會​持​續​進​行​直​到​它​成​功​地​複​製​了​所​有​的​分​頁​,或​是​當​來​源​主​機​變​動​的​速​度​太​快​,而​造​成​目​標​主​機​進​度​無​法​進​行​為​止​。​當​發​生​了​這​兩​種​情​況​時​,客​座​端​便​會​在​來​源​主​機​上​暫​停​,並​且​暫​存​器​與​緩​衝​器​便​會​被​傳​送​出​。​暫​存​器​會​被​載​入​至​新​的​主​機​上​,並​且​客​戶​端​將​會​在​目​標​主​機​上​復​原​。​若​客​座​端​無​法​合​併​的​話​(當​客​座​端​負​載​過​高​時​),客​座​端​便​會​暫​停​並​且​離​線​遷​移​程​序​將​會​被​啟​動​來​代​替​。​
離​線​遷​移​程​序​的​所​需​時​間​取​決​於​網​路​頻​寬​和​延​遲​時​間​,以​及​客​座​端​上​所​在​進​行​的​活​動​為​何​。​若​客​座​端​正​在​使​用​大​量​的 I/O 或 CPU 的​話​,遷​移​程​序​將​會​花​上​較​久​的​時​間​。​
MAC 位​址​
媒​體​存​取​控​制​位​址​(Media Access Control Address)為​網​路​介​面​卡​的​硬​體​位​址​。​以​虛​擬​化​的​角​度​來​講​,虛​擬​網​路​介​面​卡​必​須​含​有 MAC 位​址​並​且​您​本​地​網​域​上​的​各​個 MAC 必​須​要​是​獨​特​的​。​
半​虛​擬​化​
半​虛​擬​化​使​用​了​一​種​特​殊​的 kernel,有​時​亦​稱​為 Xen kernel 或​是 kernel-xen 套​件​。​半​虛​擬​化​客​座​端 kernel 會​在​主​機​上​執​行​,並​在​同​時​使​用​該​主​機​的​函​式​庫​與​裝​置​。​半​虛​擬​化​的​安​裝​程​序​將​會​擁​有​系​統​上​所​有​裝​置​的​完​整​存​取​權​限​,這​可​透​過​安​全​性​設​定​(SELinux 與​檔​案​控​制​)來​進​行​限​制​。​半​虛​擬​化​的​速​度​比​完​整​虛​擬​化​還​要​快​,並​且​可​被​有​效​地​用​於​負​載​平​衡​(load balancing)、​provisioning、​提​昇​安​全​性​以​及​強​化​整​合​。​
從 Fedora 9 開​始​,有​個​特​殊​的 kernel 將​已​不​再​被​需​要​。​一​旦​此​修​正​檔​被​併​入​主​要​的 Linux tree 中​之​後​,所​有​在​那​版​本​之​後​的 Linux kernel 皆​會​啟​用​或​可​使​用​半​虛​擬​化​。​
半​虛​擬​化​
請​參​閱 半​虛​擬​化​
半​虛​擬​化​驅​動​程​式​
半​虛​擬​化​驅​動​程​式​是​運​作​於​完​整​虛​擬​化 Linux 客​座​端​上​的​裝​置​驅​動​程​式​。​這​些​驅​動​程​式​大​幅​增​強​了​完​整​虛​擬​化​客​座​端​的​網​路​和​區​塊​裝​置 I/O 的​效​能​。​
Security Enhanced Linux
安​全​性​增​強 Linux 的​縮​寫​,SELinux 在 Linux kernel 中​用​了 Linux 安​全​性​模​組​(Linux Security Modules,LSM)以​提​供​一​系​列​只​需​要​最​少​權​限​的​安​全​性​政​策​。​
Universally Unique Identifier
通​用​唯​一​識​別​碼​(Universally Unique Identifier,UUID)是​個​在​分​散​式​運​算​環​境​(distributed computing environments)中​使​用​來​為​裝​置​、​系​統​和​特​定​軟​體​物​件​編​號​的​標​準​編​號​方​式​。​虛​擬​化​中​的 UUID 類​型​包​含​:ext2ext3 檔​案​系​統​標​識​符​號​、​RAID 裝​置​標​識​符​號​、​iSCSI 和 LUN 裝​置​標​識​符​號​、​MAC 位​址​以​及​虛​擬​機​器​標​識​符​號​。​
Virtualization
「​虛​擬​化​」​是​個​執​行​軟​體​的​電​腦​術​語​,一​般​代​表​作​業​系​統​,並​和​一​部​系​統​上​的​其​它​程​式​共​存​且​區​隔​開​來​。​大​部​分​現​有​的​虛​擬​化​實​做​都​使​用​了 hypervisor,這​是​個​在​作​業​系​統​上​模​擬​硬​體​的​軟​體​層​。​Hypervisor 透​過​了​提​供​虛​擬​化​的​硬​體​給​客​座​端​作​業​系​統​,以​允​許​多​重​作​業​系​統​在​相​同​實​體​系​統​上​執​行​,有​幾​種​可​將​作​業​系​統​虛​擬​化​的​方​法​:
  • Xen 與 KVM 的​完​整​虛​擬​化​所​使​用​的​技​巧​乃​透​過​硬​體​支​援​的​虛​擬​化​(定​義​:完​整​虛​擬​化​
  • Xen 執​行 Linux 客​座​端​所​使​用​的​技​巧​則​是​透​過​半​虛​擬​化​(定​義​:半​虛​擬​化​
  • 軟​體​虛​擬​化​或​模​擬​。​軟​體​虛​擬​化​使​用​了​執​行​檔​轉​化​(binary translation)以​及​其​它​模​擬​技​巧​來​執​行​未​經​修​改​的​作​業​系​統​。​軟​體​虛​擬​化​的​速​度​比​硬​體​支​援​的​虛​擬​化​或​半​虛​擬​化​還​要​慢​上​許​多​。​
Virtualized CPU
一​部​系​統​所​含​有​的​虛​擬​中​央​處​理​器​(VCPUs)數​量​相​應​於​實​體​處​理​器​核​心​的​數​量​。​虛​擬 CPU 的​數​量​是​有​限​的​,並​且​代​表​了​可​被​分​配​至​客​座​端​虛​擬​機​器​的​虛​擬 CPU 總​數​量​。​
虛​擬​機​器​
虛​擬​機​器​是​個​實​體​機​器​或​是​程​式​語​言​(例​如 Java Runtime Environment 或​是 LISP)的​軟​體​實​做​。​以​虛​擬​化​的​角​度​來​講​,虛​擬​機​器​屬​於​一​個​執​行​於​虛​擬​硬​體​上​的​作​業​系​統​。​
Xen
Fedora 支​援​了 Xen hypervisor 與 KVM hypervisor(請​參​閱 Kernel-based Virtual Machine)。​這​兩​個 hypervisor 皆​擁​有​不​同​的​架​構​與​建​置​方​法​。​Xen hypervisor 會​在 Linux 作​業​系​統​下​運​作​,並​作​為​主​機​管​理​系​統​資​源​與​虛​擬​化 API。​主​機​有​時​亦​稱​為 dom0 或 Domain0。​