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. 将​红​帽​企​业​版 Linux 5 作​为​半​虚​拟​客​户​端​安​装​
3.2. 将​红​帽​企​业​版 Linux 作​为​全​虚​拟​客​户​端​安​装​
3.3. 将 Windows XP 作​为​全​虚​拟​客​户​端​安​装​
3.4. 将 Windows 服​务​器 2003 作​为​全​虚​拟​客​户​端​安​装​
3.5. 将 Windows 服​务​器 2008 作​为​全​虚​拟​客​户​端​安​装​
II. Configuration
4. 虚​拟​块​设​备​
4.1. 创​建​一​个​虚​拟​软​盘​控​制​程​序​
4.2. 在​客​户​端​中​添​加​存​储​设​备​
4.3. 配​置​持​久​存​储​
4.4. 在​客​户​端​中​添​加​虚​拟​光​驱​或​者 DVD 设​备​
5. 共​享​存​储​和​虚​拟​化​
5.1. 使​用 iSCSI 存​储​客​户​端​
5.2. 使​用 NFS 存​储​客​户​端​
5.3. 使​用 GFS2 存​储​客​户​端​
6. 服​务​器​最​佳​实​践​
7. 虚​拟​化​的​安​全​性​
7.1. SELinux 和​虚​拟​化​
7.2. SELinux 的​相​关​事​宜​
8. 网​络​配​置​
8.1. libvirt 的​网​络​地​址​转​换​(NAT)
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. 使​用 SSL 进​行​远​程​管​理​
13.2. 使​用 TLS 和 SSL 进​行​远​程​管​理​
13.3. 传​输​模​式​
IV. 虚​拟​化​参​考​指​南​
14. 虚​拟​化​工​具​
15. 使​用 virsh 管​理​客​户​端​
16. 用​虚​拟​机​管​理​器​(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 管​理​程​序​间​互​换​
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 脚​本​
18.1. 使​用​带 virsh 的 XML 配​置​文​件​
VI. Troubleshooting
19. Troubleshooting
19.1. 回​送​设​备​错​误​
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 字​体​套​件​中​选​出​的​字​体​。​如​果​您​在​您​的​系​统​中​安​装​了 Liberation 字​体​套​件​,它​还​可​用​于 HTML 版​本​。​如​果​没​有​安​装​,则​会​显​示​可​替​换​的​类​似​字​体​。​请​注​意​:红​帽​企​业 Linux 5 以​及​其​后​的​版​本​默​认​包​含 Liberation 字​体​套​件​。​

2.1. 排​版​约​定​

我​们​使​用​四​种​排​版​约​定​突​出​特​定​用​词​和​短​语​。​这​些​约​定​及​其​使​用​环​境​如​下​。​
固​定​粗​体​
用​来​突​出​系​统​输​入​,其​中​包​括 shell 命​令​、​文​件​名​以​及​路​径​。​还​可​用​来​突​出​按​键​以​及​组​合​键​。​例​如​:
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. 备​注​及​警​告​

最​后​,我​们​使​用​三​种​视​觉​形​式​来​突​出​那​些​可​能​被​忽​视​的​信​息​。​

备​注​

备​注​是​对​手​头​任​务​的​提​示​、​捷​径​或​者​另​外​的​解​决​方​法​。​忽​略​提​示​不​会​造​成​负​面​后​果​,但​您​可​能​会​错​过​一​个​更​省​事​的​诀​窍​。​

重​要​

重​要​框​中​的​内​容​是​那​些​容​易​错​过​的​事​情​:配​置​更​改​只​可​用​于​当​前​会​话​,或​者​在​应​用​更​新​前​要​重​启​服​务​。​忽​略​重​要​框​中​的​内​容​不​会​造​成​数​据​丢​失​但​可​能​会​让​您​抓​狂​。​

警​告​

警​告​是​不​应​被​忽​略​的​。​忽​略​警​告​信​息​很​可​能​导​致​数​据​丢​失​。​

3. 我们需要您的反馈!

提交报告时,请​记​得​提​及​文​档​的​标​识​符​:Virtualization_Guide
如​果​你​有​改​进​本​文​档​的​建​议​,请​尽​量​将​其​明​确​化​。​如​果​你​发​现​了​错​误​,请​指​出​章​节​号​以​及​其​周​围​的​相​关​文​字​,以​便​我​们​尽​快​找​到​并​更​正​该​错​误​。​

部分 I. Installation

第 1 章 安​装​虚​拟​化​软​件​包​

1.1. 在​全​新 Fedora 安​装​过​程​中​安​装 KVM

这​部​分​论​述​了​在​全​新 Fedora 安​装​过​程​中​安​装​虚​拟​化​工​具​以​及 KVM 软​件​包​。​

安​装​过​程​中​需​要​帮​助​吗​?

《​安​装​指​南​》​(详​见 redhat.com)中​详​细​论​述​了 Fedora 12的​安​装​。​
  1. 从 Fedpra 12 安​装 CD-ROM、​DVD 或​者 PXE 启​动​互​动 Fedora 安​装​。​
  2. 完​成​软​件​包​选​择​步​骤​前​的​步​骤​。​
    选​择​「​虚​拟​化​」​软​件​包​组​群​以​及​「​现​在​定​制​」​单​选​按​钮​。​
  3. 请​选​择​「​KVM」​软​件​包​组​。​取​消​对​「​虚​拟​化​」​软​件​包​组​的​选​择​。​这​样​会​选​择 KVM 管​理​程​序​、​virt-manager、​libvirtvirt-viewer 进​行​安​装​。​
  4. 定​制​软​件​包​(如​果​需​要​)

    如​果​您​需​要​其​它​虚​拟​化​软​件​包​则​请​定​制​「​虚​拟​化​」​组​。​
    按​「​下​一​步​」​旁​边​的​「​关​闭​」​继​续​安​装​。​
使​用 kickstart 文​件​安​装 KVM 软​件​包​
这​部​分​论​述​了​如​何​使​用 Kickstart 文​件​安​装​带 KVM 管​理​程​序​软​件​包​的 Fedora。​Kickstart 文​件​允​许​大​量​的​自​动​安​装​,从​而​无​需​为​每​个​独​立​的​系​统​进​行​用​户​手​动​安​装​。​这​部​分​讨​论​的​步​骤​将​帮​助​您​创​建​并​使​用 Kickstart 文​件​来​安​装​含​有​虚​拟​化​软​件​包​的 Fedora。​
在​您 Kickstart 文​件​的 %packages 部​分​附​加​以​下​软​件​包​组​:
%packages
@kvm
Kickstart 文​件​详​情​请​参​考​《​Fedora 12 安​装​指​南​》​中​的 Fedora 项​目​网​页 http://docs.fedoraproject.org。​

1.2. 在​现​有 Fedora 系​统​中​安​装 KVM 软​件​包​

这​部​分​论​述​了​要​在​正​常​工​作​的 Fedora 12 系​统​中​安​装 KVM 管​理​程​序​的​步​骤​。​
使​用 yum 安​装 KVM 管​理​程​序​
要​在 Fedora 中​使​用​虚​拟​化​,您​需​要​有 kvm 软​件​包​。​kvm 软​件​包​中​含​有 KVM 内​核​模​块​,它​可​在​默​认 Linux 内​核​中​提​供 KVM 管​理​程​序​。​
要​安​装 kvm 软​件​包​,请​运​行​:
# yum install kvm
现​在​安​装​附​加​虚​拟​化​管​理​软​件​包​。​
安​装​其​它​推​荐​的​虚​拟​化​软​件​包​:
# yum install virt-manager libvirt libvirt-python python-virtinst

第 2 章 虚​拟​客​户​端​安​装​总​览​

您​在​主​机​系​统​中​安​装​虚​拟​化​软​件​包​后​即​可​创​建​客​户​端​操​作​系​统​。​本​章​论​述​了​在​虚​拟​机​中​安​装​客​户​端​操​作​系​统​的​一​般​步​骤​。​您​可​以​在 virt-manager 中​使​用 新​建​ 按​钮​创​建​客​户​端​,也​可​以​使​用​命​令​行​界​面 virt-install 进​行​此​操​作​。​本​章​论​述​了​这​两​种​方​法​。​
红​帽​企​业​版 Linux 的​每​个​具​体​版​本​都​有​详​细​的​安​装​说​明​,其​它 Linux 发​行​本​、​Solaris 和 Windows 的​说​明​请​参​考 第 3 章 客​户​端​操​作​系​统​安​装​过​程​。​

2.1. 使​用 virt-install 创​建​客​户​端​

您​可​以​使​用 virt-install 命​令​从​命​令​行​创​建​虚​拟​客​户​端​。​virt-install 可​以​交​互​方​式​使​用​,也​可​以​使​用​脚​本​从​而​自​动​生​成​虚​拟​机​。​将 Kickstart 文​件​与 virt-install 共​同​使​用​即​可​进​行​虚​拟​机​的​自​动​安​装​。​
virt-install 工​具​提​供​很​多​选​项​,它​们​可​提​供​该​命​令​行​。​要​查​看​选​项​完​整​列​表​请​运​行​:
$ virt-install --help
virt-install man page 还​记​录​了​每​个​命​令​选​项​和​重​要​变​量​。​
qemu-img 是​一​个​关​联​命​令​,可​在 virt-install 前​用​来​配​置​存​储​选​项​。​
--vnc 是​一​个​重​要​选​项​,它​可​为​客​户​端​安​装​打​开​图​形​窗​口​。​
这​个​示​例​在 CE-ROM 中​使​用​虚​拟​联​网​和 5GB 基​于​文​件​的​块​设​备​映​像​创​建​了​名​为 rhel3support 的​红​帽​企​业​版 Linux 3 客​户​端​。​这​个​示​例​使​用​的​是 KVM 管​理​程​序​。​
# 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 创​建​红​帽​企​业​版 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,请​以​根​用​户​身​份​运​行​以​下​命​令​:
    # virt-manager &
    
    virt-manager 会​打​开​图​形​用​户​界​面​窗​口​。​没​有​根​特​权​或​者​没​有​配​置 sudo 的​用​户​无​法​使​用​某​些​功​能​,其​中​包​括 新​建​ 按​钮​,就​是​说​您​无​法​创​建​新​的​虚​拟​客​户​端​。​
  2. 打​开​「​文​件 > 打​开​连​接​」​,则​会​出​现​下​面​的​对​话​框​。​选​择​监​控​程​序​并​点​击 连​接​ 按​钮​:
  3. virt-manager 窗​口​可​允​许​您​创​建​新​虚​拟​机​。​点​击 新​建​ 按​钮​创​建​新​的​客​户​端​。​这​会​打​开​如​下​截​屏​中​所​示​的​向​导​。​
  4. 「​创​建​新​虚​拟​系​统​」​窗​口​提​供​了​您​要​创​建​虚​拟​机​所​必​须​提​供​的​信​息​总​结​:
    为​您​的​安​装​复​查​该​信​息​,并​点​击 前​进​ 按​钮​。​
  5. 此​时​会​出​现​「​选​择​虚​拟​化​方​法​」​窗​口​。​选​择​「​半​虚​拟​」​或​者​「​全​虚​拟​」​。​
    全​虚​拟​化​需​要​系​统​使​用 Intel® VT 或​者 AMD-V 处​理​器​。​如​果​没​有​出​现​虚​拟​化​扩​展​,那​么​就​无​法​选​择​「​全​虚​拟​」​或​者​「​启​用​内​核​/硬​件​加​速​」​按​钮​。​如​果​目​前​使​用​的​不​是 kernel-xen 内​核​,则​「​半​虚​拟​」​选​项​就​会​是​灰​色​的​。​
    如​果​您​连​接​到 KVM 管​理​程​序​,则​只​能​使​用​全​虚​拟​化​。​
    选​择​虚​拟​化​类​型​并​点​击 下​一​步​ 按​钮​。​
  6. 「​定​位​安​装​介​质​」​提​示​您​选​择​安​装​类​型​的​安​装​介​质​。​这​一​步​依​赖​您​前​一​步​的​选​择​。​
    1. 半​虚​拟​安​装​需​要​使​用​以​下​网​络​协​议​之​一​访​问​安​装​树​:HTTP、​FTP 或​者 NFS。​安​装​介​质 URL 必​须​含​有 Fedora 安​装​树​。​这​个​安​装​树​是​使​用 NFS、​FTP 或​者 HTTP 托​管​。​可​使​用​主​机​中​的​网​络​服​务​或​者​另​一​个​镜​像​托​管​网​络​服​务​和​文​件​。​
      使​用 CE-ROM 或​者 DVD 映​像​(标​记​为 .iso 文​件​),挂​载 CD-ROM 映​像​并​使​用​以​上​协​议​之​一​托​管​挂​载​的​文​件​。​
      还​可​以​从 Fedora 镜​像​中​复​制​安​装​树​。​
    2. 全​虚​拟​客​户​端​安​装​需​要​在​本​地​有​可​引​导​安​装 DVD、​CD-ROM 或​者​可​引​导​安​装 DVD 或​者 CD-ROM 的​映​像​(即 .iso 或​者 .img 文​件​类​型​)。​Windows 安​装​使​用 DVD、​CD-ROM 或​者 .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.
    在 Fedora 中​对​基​于​文​件​映​像​的​规​定​是​所​有​基​于​文​件​的​客​户​端​映​像​都​应​位​于 /var/lib/xen/images/ 目​录​中​。​SELinux 禁​止​在​其​它​任​何​位​置​保​存​基​于​文​件​的​映​像​。​如​果​您​以 enforcing 模​式​运​行 SELinux,则​请​在 第 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.
    客​户​端​需​要​足​够​的​物​理​内​存​(RAM)方​可​有​效​运​行​。​请​选​择​适​合​您​客​户​端​操​作​系​统​和​应​用​程​序​要​求​的​内​存​值​。​大​多​数​操​作​系​统​需​要​至​少 512MB RAM 方​可​有​效​工​作​。​请​记​住​:客​户​端​使​用​的​是​物​理 RAM。​运​行​客​户​端​过​多​或​者​没​有​为​主​机​系​统​留​下​足​够​内​存​将​导​致​大​量​使​用​虚​拟​内​存​。​虚​拟​内​存​非​常​缓​慢​,将​导​致​系​统​性​能​和​反​应​能​力​大​大​降​低​。​请​确​定​您​为​所​有​主​机​和​客​户​端​分​配​了​足​够​内​存​以​便​其​有​效​工​作​。​
    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 客​户​端​安​装​需​要​共​享​网​络​设​备​,即​我​们​所​说​的​无​论​桥​接​。​下​面​的​过​程​包​括​桥​接​创​建​以​及​使​用​桥​接​进​行 PXE 安​装​的​步​骤​。​
  1. 创​建​新​桥​接​

    1. /etc/sysconfig/network-scripts 目​录​中​创​建​新​网​络​脚​本​。​这​个​示​例​创​建​了​名​为 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. Start the new bridge.
      # ifup installation
      
    3. 还​没​有​在​新​桥​接​中​添​加​接​口​。​请​使​用 brctl show 命​令​查​看​系​统​中​网​络​桥​接​的​详​情​。​
      # brctl show
      bridge name     bridge id               STP enabled     interfaces
      installation    8000.000000000000       no
      virbr0          8000.000000000000       yes
      
      virbr0libvirt 在​默​认​以​太​网​设​备​中​用​于​网​络​地​址​转​换​(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:installation 安​装​参​数​,其​中 installation 是​您​桥​接​的​名​称​。​对​于 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 安​装​
红​帽​企​业​版 Linux 的​每​个​具​体​版​本​都​有​详​细​的​安​装​说​明​,其​它 Linux 发​行​本​、​Solaris 和 Windows 的​说​明​请​参​考 第 3 章 客​户​端​操​作​系​统​安​装​过​程​。​
  1. 选​择 PXE

    选​择 PXE 作​为​安​装​方​法​。​
  2. 选​择​桥​接​

    选​择​「​共​享​物​理​设​备​」​并​选​择​在​前​面​的​步​骤​中​创​建​的​桥​接​。​
  3. 开​始​安​装​

    准​备​开​始​安​装​。​
发​送 DHCP 请​求​,找​到​有​效 PXE 服​务​器​后​即​可​开​始​安​装​过​程​。​

第 3 章 客​户​端​操​作​系​统​安​装​过​程​

本​章​论​述​了​如​何​在​红​帽​企​业​版 Linux 的​虚​拟​环​境​中​安​装​各​种​客​户​端​操​作​系​统​。​要​了​解​基​本​过​程​,请​参​考 第 2 章 虚​拟​客​户​端​安​装​总​览​。​

3.1. 将​红​帽​企​业​版 Linux 5 作​为​半​虚​拟​客​户​端​安​装​

这​部​分​论​述​了​如​何​安​装​红​帽​企​业​版 Linux 5 作​为​半​虚​拟​客​户​端​。​半​虚​拟​化​要​比​全​虚​拟​化​速​度​更​快​,并​支​持​所​有​全​虚​拟​化​的​优​点​。​半​虚​拟​化​需​要​一​个​特​殊​支​持​的​内​核​,即 kernel-xen 内​核​。​

半​虚​拟​化​的​重​要​注​释​

半​虚​拟​化​只​适​用​于 Xen 管​理​程​序​。​半​虚​拟​化​不​可​用​于 KV么​管​理​程​序​。​
确​定​您​在​开​始​安​装​前​可​进​行​根​访​问​。​
这​个​方​法​可​从​远​程​服​务​器​安​装​红​帽​企​业​版 Linux。​此​处​的​安​装​说​明​与​使​用​实​时 CD-ROM 进​行​最​小​安​装​类​似​。​
使​用 virt-manager 或​者 virt-install 创​建​半​虚​拟​红​帽​企​业​版 Linux 5 客​户​端​。​有​关 virt-manager 的​步​骤​请​参​考 第 2.2 节 “使​用 virt-manager 创​建​客​户​端​”。​
使​用​基​于 virt-install 工​具​的​命​令​行​创​建​半​虚​拟​客​户​端​。​--vnc 选​项​显​示​图​形​安​装​。​这​个​示​例​中​的​客​户​端​名​称​为 rhel5PV,磁​盘​映​像​文​件​为 rhel5PV.dsk,红​帽​企​业​版 Linux 5 安​装​树​的​本​地​镜​像​为 ftp://10.1.1.1/trees/RHEL5-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/

自​动​安​装​

可​不​使​用​图​形​界​面​或​者​手​动​输​入​安​装​红​帽​企​业​版 Linux。​使​用 Kickstart 文​件​自​动​完​成​安​装​进​程​。​
使​用​两​种​方​法​之​一​打​开​这​个​窗​口​,显​示​您​客​户​端​的​初​始​化​引​导​阶​段​:
当​您​的​客​户​端​完​成​初​始​化​引​导​后​将​开​始​红​帽​企​业​版 Linux 的​标​准​安​装​过​程​。​大​多​数​系​统​的​默​认​回​答​是​接​受​。​
过程 3.1. 半​虚​拟​红​帽​企​业​版 Linux 客​户​端​安​装​过​程​
  1. 选​择​语​言​并​点​击 确​定​。​
  2. 选​择​键​盘​布​局​并​点​击 确​定​。​
  3. 分​配​客​户​端​网​络​地​址​。​您​可​以​使​用 DHCP(如​下​所​示​),也​可​以​使​用​静​态​地​址​:
  4. 如​果​您​选​择 DHCP,则​安​装​程​序​现​在​会​试​图​获​取 IP 地​址​:
  5. 如​果​您​为​客​户​端​选​择​静​态 IP 地​址​,则​会​出​现​以​下​提​示​。​请​输​入​客​户​端​联​网​配​置​详​情​:
    1. 请​输​入​有​效 IP 地​址​,确​定​您​输​入​的 IP 地​址​可​到​达​有​安​装​树​的​服​务​器​。​
    2. 输​入​有​效​子​网​掩​码​、​默​认​网​关​以​及​名​称​服​务​器​地​址​。​
    选​择​语​言​并​点​击 确​定​。​
  6. 这​是​一​个​静​态 IP 地​址​配​置​示​例​:
  7. 安​装​进​程​现​在​从​服​务​器​中​搜​索​所​需​文​件​:
初​始​化​步​骤​完​成​后​启​动​图​形​安​装​进​程​。​
如​果​您​正​在​安​装 ß 或​者​更​早​的​发​行​版​本​,请​确​定​您​要​安​装​该​操​作​系​统​。​点​击 无​论​如​何​都​安​装​,然​后​点​击 确​定​。​
过程 3.2. 图​形​安​装​过​程​
  1. 输​入​有​效​注​册​码​。​如​果​您​有​一​个​有​效 RHN 订​阅​密​钥​,请​在 Installation Number 字​段​输​入​:

    Note

    如​果​您​跳​过​注​册​步​骤​,那​么​您​可​以​在​安​装​后​使​用 rhn_register 命​令​确​认​您​的 fedora 网​络​帐​户​详​情​。​rhn_register 命​令​需​要​根​访​问​。​
    # rhn_register
    
  2. 安​装​程​序​提​示​您​确​定​想​要​在​安​装​过​程​中​删​除​您​所​选​存​储​设​备​中​的​所​有​数​据​:
    点​击 是​ 继​续​。​
  3. 查​看​存​储​配​置​和​分​区​布​局​。​如​果​您​要​在​客​户​端​存​储​中​使​用 iSCSI,则​可​以​选​择​高​级​存​储​配​置​。​
    选​择​然​后​点​击 下​一​步​。​
  4. 为​安​装​确​定​选​择​的​存​储​。​
    点​击 是​ 继​续​。​
  5. 配​置​联​网​和​主​机​名​设​定​。​这​些​设​定​使​用​早​先​安​装​过​程​输​入​的​数​据​,需​要​时​可​修​改​这​些​设​定​。​
    点​击 确​定​ 继​续​。​
  6. 为​您​的​环​境​选​择​适​当​的​时​区​。​
  7. 为​您​的​客​户​端​输​入​根​密​码​。​
    点​击 下​一​步​ 继​续​。​
  8. 选​择​要​安​装​的​软​件​软​件​包​。​选​择 现​在​定​制​ 按​钮​。​您​必​须​在​「​System」​目​录​中​安​装​「​kernel-xen」​。​半​虚​拟​化​需​要​「​kernel-xen」​软​件​包​。​
    点​击 下​一​步​。​
  9. 计​算​相​依​性​和​空​间​要​求​。​
  10. 在​您​确​定​安​装​相​依​性​以​及​空​间​要​求​后​,点​击 下​一​步​ 按​钮​开​始​实​际​安​装​。​
  11. 自​动​安​装​所​有​选​择​的​软​件​软​件​包​。​
  12. 完​成​安​装​后​重​启​您​的​客​户​端​:
  13. 客​户​端​不​会​重​启​,而​是​会​关​闭​......
  14. 引​导​该​客​户​端​。​当​您​使​用 第 3.1 节 “将​红​帽​企​业​版 Linux 5 作​为​半​虚​拟​客​户​端​安​装​” 中​的 virt-install 时​会​选​择​客​户​端​名​称​。​如​果​您​使​用​默​认​示​例​,则​该​名​称​为 rhel5PV。​
    运​行​:
    virsh reboot rhel5PV
    
    另​外​,打​开 virt-manager,选​择​您​客​户​端​的​名​称​,点​击 打​开​,然​后​点​击 运​行​。​
    现​在​打​开​了​显​示​客​户​端​引​导​过​程​的 VNC 窗​口​。​
  15. 引​导​客​户​端​将​启​动​首​次​引​导​配​置​屏​。​这​个​向​导​将​提​示​您​为​客​户​端​输​入​一​些​基​本​配​置​选​择​。​
  16. 阅​读​并​同​意​许​可​证​协​议​。​
    点​击​许​可​证​协​议​窗​口​中​的 前​进​。​
  17. 配​置​防​火​墙​。​
    Click Forward to continue.
    1. 如​果​您​选​择​禁​用​防​火​墙​,则​会​提​示​您​确​认​您​的​选​择​。​点 确​定​ 确​认​并​继​续​。​
  18. 配​置 SELinux。​我​们​强​烈​建​议​您​在​「​enforcing」​模​式​下​运​行 SELinux。​您​也​可​以​选​择​在 permissive 模​式​下​运​行 SELinux 或​者​完​全​禁​用 SELinux:
    Click Forward to continue.
    1. 如​果​您​选​择​禁​用 SELinux,则​会​出​现​这​个​警​告​。​点 是​ 禁​用 SELinux。​
  19. 需​要​时​启​用 kdump。​
    Click Forward to continue.
  20. 确​定​为​您​的​客​户​端​正​确​设​定​了​时​间​和​日​期​。​如​果​您​安​装​了​半​虚​拟​客​户​端​,则​时​间​和​日​期​应​该​与​管​理​程​序​同​步​。​
    Click Forward to continue.
  21. 设​置​软​件​更​新​。​如​果​您​有 fedora 网​络​订​阅​或​者​要​尝​试​,请​使​用​下​面​的​页​面​在 RHN 中​注​册​您​新​安​装​的​客​户​端​。​
    Click Forward to continue.
    1. 在 RHN 中​确​认​您​的​选​择​。​
    2. 如​果​您​这​次​没​有​选​择 RHN,则​在​完​成​设​置​后​,您​可​以​看​到​一​个​或​者​多​个​页​面​。​您​将​无​法​接​受​软​件​更​新​。​
      点​击 前​进​ 按​钮​。​
  22. 创​建​一​个​非​根​用​户​帐​户​。​建​议​您​为​一​般​使​用​和​加​强​的​安​全​性​创​建​一​个​非​根​用​户​。​输​入​用​户​名​、​名​称​和​密​码​。​
    点​击 前​进​ 按​钮​。​
  23. 如​果​侦​测​到​一​个​声​音​设​备​且​您​需​要​音​效​,请​校​正​它​。​完​成​该​过​程​并​点​击 前​进​。​
  24. 在​这​个​页​面​中​您​可​以​从​光​盘​中​安​装​任​意​附​加​软​件​软​件​包​。​通​常​不​在​此​时​安​装​任​何​额​外​软​件​,而​在​之​后​使​用 yum 安​装​效​率​更​高​。​点​击 完​成​。​
  25. 客​户​端​现​在​配​置​您​更​改​的​所​有​设​定​并​继​续​引​导​过​程​。​
  26. 显​示​运​行​红​帽​企​业​版 Linux 5 登​录​屏​。​使​用​前​面​步​骤​中​创​建​的​用​户​名​登​录​。​
  27. 您​已​成​功​安​装​了​半​虚​拟​红​帽​企​业​版 Linux 5 客​户​端​。​

3.2. 将​红​帽​企​业​版 Linux 作​为​全​虚​拟​客​户​端​安​装​

这​部​分​论​述​如​何​安​装​全​虚​拟​红​帽​企​业​版 Linux 5 客​户​端​。​
过程 3.3. 使​用 virt-manager 创​建​全​虚​拟​红​帽​企​业​版 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.
    如​果​您​还​没​有​这​样​做​,请​连​接​到​管​理​程​序​。​打​开​「​文​件​」​菜​单​并​选​择​「​添​加​连​接​......」​选​项​,请​参​考 第 16.1 节 “打​开​连​接​窗​口​”。​
    选​择​管​理​程​序​连​接​后​即​可​使​用​「​新​建​」​按​钮​。​按​「​新​建​」​按​钮​。​
  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),您​就​必​须​使​用​已​经​选​择​的​管​理​程​序​。​这​个​示​例​使​用 KVM 管​理​程​序​。​
    前​进​ 继​续​。​
  6. Select the installation method

    选​择​「​本​地​安​装​介​质​」​从​光​盘​或​者 ISO 映​像​安​装​;「​网​络​安​装​树​」​从 HTTP、​FTP 或​者 NFS 服​务​器​中​安​装​;「​网​络​引​导​」​从 PXE 服​务​器​中​安​装​。​
    将​「​操​作​系​统​」​类​型​设​定​为​「​Windows」​「​操​作​系​统​变​体​」​设​定​为​「​微​软 Windows 2008」​,如​截​屏​中​所​示​。​
    前​进​ 继​续​。​
  7. Locate installation media

    选​择 ISO 映​像​位​置​或​者 CD-ROM 或​者 DVD 设​备​。​这​个​示​例​使​用​红​帽​企​业​版 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

    完​成​红​帽​企​业​版 Linux 5 安​装​步​骤​。​安​装​顺​序​包​含​在​《​红​帽​企​业​版 Linux 安​装​指​南​》​中​,网​址​为 http://redhat.com/docs。​
现​在​安​装​了​全​虚​拟​红​帽​企​业​版 Linux 5 客​户​端​。​

3.3. 将 Windows XP 作​为​全​虚​拟​客​户​端​安​装​

可​将 Windows XP 作​为​全​虚​拟​客​户​端​安​装​。​这​部​分​论​述​了​如​何​在 Linux 中​将 Windows XP 作​为​全​虚​拟​客​户​端​安​装​。​
进​行​此​操​作​前​请​确​定​您​可​以​作​为​根​用​户​访​问​。​
  1. Starting virt-manager

    请​打​开​「​一​样​程​序 > 系​统​工​具 > 虚​拟​机​管​理​器​」​。​打​开​到​该​主​机​的​连​接​(点​击​「​文​件 > 打​开​连​接​」​)。​点​击 新​建​ 按​钮​创​建​一​个​新​虚​拟​机​。​
  2. 为​您​的​虚​拟​系​统​命​名​

    输​入​「​系​统​名​称​」​并​点​击 前​进​ 按​钮​。​
  3. 选​择​虚​拟​化​方​法​

    如​果​您​之​前​选​择 KVM 或​者 Xen(步​骤 步骤 1),您​必​须​使​用​您​选​择​的​管​理​程​序​。​这​个​示​例​使​用 KVM 管​理​程​序​。​
    只​能​使​用​全​虚​拟​化​安​装 Windows。​
  4. 选​择​安​装​方​法​

    这​一​步​可​让​您​指​定​操​作​系​统​的​安​装​方​法​和​类​型​。​
    如​果​使​用 CD-ROM 或​者 DVD 安​装​,请​选​择​有 Windows 安​装​磁​盘​的​设​备​。​如​果​您​选​择​「​ISO 映​像​位​置​」​,请​输​入 Windows 安​装 .iso 映​像​的​路​径​。​
    请​在​「​操​作​系​统​类​型​」​列​表​中​选​择​「​Windows」​,在​「​操​作​系​统​变​体​」​列​表​中​选​择​「​微​软 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.
    在 Fedora 中​对​基​于​文​件​映​像​的​规​定​是​所​有​基​于​文​件​的​客​户​端​映​像​都​应​位​于 /var/lib/xen/images/ 目​录​中​。​SELinux 禁​止​在​其​它​任​何​位​置​保​存​基​于​文​件​的​映​像​。​如​果​您​以 enforcing 模​式​运​行 SELinux,则​请​在 第 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.
    虚​拟​客​户​端​需​要​足​够​的​内​存​(RAM)才​可​有​效​运​行​。​选​择​适​合​您​客​户​端​操​作​系​统​和​应​用​程​序​需​要​的​内​存​值​。​大​多​数​操​作​系​统​需​要​至​少 512MB 内​存​才​可​工​作​。​请​记​住​:客​户​端​使​用​的​是​物​理 RAM。​运​行​太​多​客​户​端​或​者​留​给​主​机​系​统​的​内​存​不​足​将​导​致​过​量​使​用​虚​拟​内​存​和​交​换​。​虚​拟​内​存​速​度​要​慢​很​多​从​而​降​低​系​统​性​能​和​反​应​速​度​。​确​定​您​为​所​有​客​户​端​和​主​机​分​配​了​足​够​的​内​存​以​便​其​有​效​操​作​。​
    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 安​装​中​看​到​对​话​框​时​,请​选​择 '普​通 i486 平​台​' 标​签​(您​可​以​使​用 UpDown 箭​头​键​在​选​项​中​进​行​滚​动​选​择​)。​
  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 服​务​器 2003 作​为​全​虚​拟​客​户​端​安​装​

本​章​论​述​了​使​用 virt-install 命​令​安​装​全​虚​拟 Windows 服​务​器 2003 客​户​端​。​可​使​用 virt-install 替​换 virt-manager。​这​个​过​程​与 第 3.3 节 “将 Windows XP 作​为​全​虚​拟​客​户​端​安​装​” 中​所​述 Windows XP 安​装​类​似​。​
  1. 使​用 virt-install 安​装 Windows 服​务​器 2003,将​其​作​为 Windows 客​户​端​控​制​台​迅​速​打​开 virt-viewer 窗​口​。​使​用 virt-install 安​装 Windows 服​务​器 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 可​让​您​选​择​不​同​的​「​AL」​或​者​「​计​算​机​类​型​」​。​选​择 Standard PC 作​为 「​计​算​机​类​型​」​。​在 Windows 服​务​器 2003 虚​拟​客​户​端​中​需​要​更​改 「​计​算​机​类​型​」​。​
  3. 完​成​余​下​的​安​装​。​
  4. 作​为​全​虚​拟​客​户​端​安​装 Windows 2003。​

3.5. 将 Windows 服​务​器 2008 作​为​全​虚​拟​客​户​端​安​装​

这​部​分​论​述​如​何​安​装​全​虚​拟 Windows 服​务​器 2008 客​户​端​。​
过程 3.4. 使​用 virt-manager 安​装 Windows 服​务​器 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(第​二​步​),您​必​须​使​用​您​选​择​的​管​理​程​序​。​这​个​示​例​使​用 KVM 管​理​程​序​。​
    前​进​ 继​续​。​
  6. Select the installation method

    对​于​所​有 Windows 版​本​您​必​须​使​用​「​本​地​安​装​介​质​」​,可​以​是 ISO 映​像​或​者​物​理​光​学​介​质​。​
    如​果​您​为 Windows 网​络​安​装​配​置​了 PXE 服​务​器​,则​您​可​以​使​用 PXE。​PXE Windows 安​装​不​在​本​章​讨​论​范​围​内​。​
    将​「​操​作​系​统​」​类​型​设​定​为​「​Windows」​「​操​作​系​统​变​体​」​设​定​为​「​微​软 Windows 2008」​,如​截​屏​中​所​示​。​
    前​进​ 继​续​。​
  7. Locate installation media

    选​择 ISO 映​像​位​置​或​者 CD-ROM 或​者 DVD 设​备​。​这​个​示​例​使​用 Windows 服​务​器 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 服​务​器 2008 安​装​程​序​。​本​指​南​不​包​括​安​装​程​序​,有​关​安​装 Windows 的​信​息​请​参​考​微​软​的 documentation。​

部分 II. Configuration

第 4 章 虚​拟​块​设​备​

本​章​讲​述​如​何​在​红​帽​虚​拟​化​客​户​端​中​安​装​和​配​置​块​设​备​。​名​词​块​设​备​指​的​是​各​种​形​式​的​存​储​设​备​。​

4.1. 创​建​一​个​虚​拟​软​盘​控​制​程​序​

软​盘​控​制​程​序​需​要​很​多​老​的​操​作​系​统​,特​别​是​在​安​装​驱​动​程​序​时​。​目​前​无​法​从​虚​拟​客​户​端​访​问​物​理​软​盘​设​备​,但​支​持​从​虚​拟​软​盘​设​备​创​建​并​访​问​软​盘​磁​盘​映​像​。​这​部​分​论​述​的​是​如​何​创​建​虚​拟​软​盘​设​备​。​
需​要​一​个​软​盘​映​像​文​件​。​请​使​用 dd 命​令​创​建​软​盘​映​像​文​件​。​使​用​正​确​的​软​盘​设​备​名​称​及​磁​盘​名​称​替​换 /dev/fd0。
# dd if=/dev/fd0 of=~/legacydrivers.img

半​虚​拟​驱​动​程​序​备​注​

半​虚​拟​驱​动​程​序​可​将​物​理​软​盘​设​备​与​全​虚​拟​客​户​端​对​应​。​
这​个​示​例​使​用 virt-manager 创​建​的​客​户​端​,该​客​户​端​使​用​位​于 /var/lib/libvirt/images/rhel5FV.img 的​映​像​运​行​全​虚​拟​红​帽​企​业​版 Linux 安​装​。​在​这​个​示​例​中​使​用 Xen 管​理​程​序​。​
  1. 请​在​运​行​的​客​户​端​中​使​用 virsh 命​令​为​您​的​客​户​端​映​像​生​成 XML 配​置​文​件​。​
    # virsh dumpxml rhel5FV > rhel5FV.xml
    
    这​样​可​将​配​置​设​定​保​存​为 XML 文​件​,编​辑​该​文​件​可​优​化​客​户​端​使​用​的​操​作​及​设​备​。​有​关​使​用 virsh XML 配​置​文​件​的​详​情​请​参​考 第 18 章 生​成​自​定​义 libvirt 脚​本​。​
  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。​
  • 位​于​主​机​文​件​系​统​中​的​文​件​容​器​。​
  • 由​虚​拟​机​直​接​挂​载​的 NFS 文​件​系​统​。​
  • 客​户​端​可​直​接​访​问​的 iSCSI 存​储​。​
  • 群​集​文​件​系​统​(GFS)。​
在​客​户​端​中​添​加​基​于​文​件​的​存​储​
基​于​文​件​的​存​储​或​者​基​于​文​件​的​容​器​是​指​主​机​文​件​系​统​中​作​为​虚​拟​客​户​端​虚​拟​硬​盘​使​用​的​文​件​。​要​添​加​基​于​文​件​的​容​器​,请​执​行​以​下​步​骤​:
  1. 创​建​空​白​容​器​文​件​或​者​使​用​现​有​文​件​容​器​(比​如 ISO 文​件​)。​
    1. 请​使​用 dd 命​令​创​建​稀​疏​文​件​。​因​为​有​数​据​完​整​性​和​性​能​问​题​,所​以​不​建​议​使​用​稀​疏​文​件​。​创​建​稀​疏​文​件​的​速​度​较​快​,并​可​用​来​进​行​测​试​,但​不​应​在​产​品​环​境​中​使​用​。​
      # dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M seek=4096 count=0
      
    2. 建​议​在​基​于​文​件​的​存​储​容​器​中​使​用​非​稀​疏​、​预​分​配​的​文​件​。​要​生​成​非​稀​疏​文​件​,请​执​行​:
      # 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 选​择​分​区​类​型​。​
      命令(m 为帮助):t
      
    7. 选​择​在​上​一​步​创​建​的​分​区​。​在​这​个​示​例​中​为​分​区 1。​
      分区号(1-4):1
      
    8. 输​入 83 选​择 Linux 分​区​。​
      Hex 代码(输入 L 列出代码):83
      
    9. 在​磁​盘​中​写​入​更​改​并​退​出​。​
      命令(m 为帮助):w 
      命令(m 为帮助):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 中​名​为 /dev/hdb,在 Windows 中​名​为 D: drive。​这​个​设​备​可​能​需​要​格​式​化​。​

4.3. 配​置​持​久​存​储​

这​部​分​论​述​的​是​使​用​外​部​或​者​联​网​存​储​的​系​统​,即​光​纤​通​道​或​者​基​于 iSCSI 的​存​储​设​备​。​建​议​在​您​的​主​机​中​为​那​些​系​统​配​置​持​久​设​备​名​称​。​这​还​可​已​帮​助​实​时​迁​移​并​为​多​个​虚​拟​系​统​提​供​一​致​的​设​备​名​称​和​存​储​。​
全​局​唯​一​标​识​符​(Universally Unique Identifier,UUID)是​在​分​散​的​计​算​环​境​中​识​别​计​算​机​和​设​备​的​标​准​化​方​法​。​这​部​分​介​绍​了​使​用 UUID 来​识​别 iSCSI 或​者​光​纤​通​道 LUN。​重​启​、​断​开​连​接​或​者​设​备​交​换​后 UUID 不​会​改​变​。​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 与​访​问​该​设​备​的​计​算​机​中​的​一​致​。​
  4. 为​该​设​备​名​称​创​建​规​则​。​请​在 /etc/udev/rules.d 目​录​中​创​建​名​为 20-names.rules 的​文​件​。​添​加​到​同​一​文​件​中​的​所​有​规​则​都​使​用​相​同​的​格​式​。​规​则​格​式​如​下​:
    KERNEL="sd*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT=UUID, NAME=devicename
    
    请​使​用​上​面​检​检​索​的 UUID 和​设​备​名​称​替​换 UUIDdevicename。​这​是​如​上​示​例​中​的​一​个​规​则​:
    KERNEL="sd*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT="3600a0b800013275100000015427b625e", NAME="rack4row16"
    
    udev 守​护​进​程​现​在​为​该​规​则​中​的 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 系​统​的​网​络​存​储​设​备​提​供​容​错​、​故​障​切​换​以​及​改​进​的​性​能​。​
要​在 multipath 环​境​中​部​署 LUN 持​久​性​,需​要​为​您​的​多​路​径​设​备​定​义​别​名​。​每​个​存​储​设​备​都​有​一​个 UUID,它​是​作​为​别​名​的​密​钥​使​用​。​请​使​用 scsi_id 命​令​识​别​设​备​的 UUID。​
# scsi_id -g -s /block/sdc
多​路​径​设​备​将​在 /dev/mpath 目​录​中​生​成​。​在​下​面​的​示​例​中 /etc/multipath.conf 文​件​定​义​了 4 个​设​备​:
multipaths { 
        multipath { 
        wwid                3600805f30015987000000000768a0019 
        alias                oramp1 
        } 
        multipath { 
        wwid                3600805f30015987000000000d643001a 
        alias                oramp2 
        } 
        mulitpath { 
        wwid                3600805f3001598700000000086fc001b 
        alias                oramp3 
        } 
        mulitpath { 
        wwid                3600805f300159870000000000984001c 
        alias                oramp4 
        } 
}
这​个​配​置​将​生​成 4 个 LUN,分​别​名​为 /dev/mpath/oramp1、​/dev/mpath/oramp2、​/dev/mpath/oramp3/dev/mpath/oramp4。​输​入​后​,设​备​的 WWID 将​与​其​新​名​称​匹​配​,并​在​重​启​后​保​留​。​

4.4. 在​客​户​端​中​添​加​虚​拟​光​驱​或​者 DVD 设​备​

要​在​客​户​端​在​线​时​在​其​中​附​加​一​个 ISO 文​件​,请​使​用​带 attach-disk 参​数​的 virsh 命​令​。​
# 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 全​局​文​件​系​统 2(GFS2)存​储​虚​拟​客​户​端​。​

第 6 章 服​务​器​最​佳​实​践​

以​下​任​务​和​提​示​可​帮​助​您​保​证​红​帽​企​业​版 Fedora 服​务​器​主​机​(dom0)的​可​靠​性​。​
  • 以​强​制​模​式​(enforcing)运​行 SELinux。​您​可​以​执​行​以​下​命​令​来​达​到​此​目​的​。
    # setenforce 1
    
  • 删​除​或​者​禁​用​所​有​不​必​要​的​服​务​,例​如 AutoFS、​NFS、​FTP、​HTTP、​NIS、​telnetd、​sendmail 等​等​。​
  • 在​服​务​器​中​只​添​加​平​台​管​理​所​需​的​最​小​用​户​帐​户​数​,并​删​除​不​必​要​的​用​户​帐​户​。​
  • 避​免​在​您​的​主​机​中​运​行​任​何​不​重​要​的​应​用​程​序​。​在​主​机​中​运​行​应​用​程​序​可​能​会​影​响​虚​拟​机​性​能​,并​可​影​响​服​务​器​稳​定​性​。​任​何​可​能​使​服​务​器​崩​溃​的​应​用​程​序​也​会​导​致​服​务​器​中​的​所​有​虚​拟​机​无​法​工​作​。​
  • 使​用​中​央​位​置​保​存​虚​拟​机​安​装​程​序​及​映​像​。​虚​拟​机​映​像​应​该​保​存​在 /var/lib/libvirt/images/ 目​录​中​。​如​果​您​要​为​您​的​虚​拟​机​使​用​不​同​的​目​录​,请​确​定​将​该​目​录​添​加​到​您​的 SELinux 策​略​中​并​在​开​始​安​装​前​对​其​进​行​重​新​标​记​。​
  • 应​该​将​安​装​源​、​安​装​树​和​安​装​映​像​保​存​在​中​央​位​置​,通​常​是​您​的 vsftpd 服​务​器​。​

第 7 章 虚​拟​化​的​安​全​性​

当​在​您​的​企​业​构​架​中​部​署​虚​拟​化​技​术​时​,您​必​须​确​定​不​会​损​害​到​主​机​。​在 Xen 管​理​程​序​中​,主​机​是​进​行​系​统​管​理​并​管​理​所​有​虚​拟​机​的​特​权​域​。​如​果​主​机​不​安​全​,那​么​该​系​统​中​的​其​它​所​有​域​都​有​危​险​。​有​几​种​方​法​可​使​用​虚​拟​化​增​强​安​全​性​。​您​或​者​您​的​机​构​应​该​创​建​一​个​实​施​计​划​,其​内​容​包​括​操​作​说​明​,并​指​定​在​您​的​虚​拟​客​户​端​和​主​机​服​务​器​中​需​要​的​服​务​,以​及​这​些​服​务​所​需​要​的​支​持​。​以​下​是​您​在​制​定​实​施​计​划​时​应​该​考​虑​的​安​全​问​题​:
  • 在​主​机​中​只​运​行​必​要​的​服​务​。​主​机​中​运​行​的​服​务​越​少​,安​全​性​等​级​和​性​能​也​就​越​高​。​
  • 在​管​理​程​序​中​启​用 SELinux。​有​关​使​用 SELinux 和​虚​拟​化​的​资​料​请​阅​读 第 7.1 节 “SELinux 和​虚​拟​化​”。​
  • 使​用​防​火​墙​来​限​制 dom0 的​流​量​。​您​可​以​设​置​采​用 default-reject 规​则​的​防​火​墙​,这​将​有​助​于​避​免​对 dom0 的​攻​击​。​限​制​网​络 facing 服​务​也​是​很​重​要​的​。​
  • 不​要​允​许​普​通​用​户​访​问 dom0。​如​果​您​允​许​普​通​用​户​访​问 dom0,这​可​能​会​导​致 dom0 出​现​薄​弱​环​节​。​请​记​住​,dom0 是​专​用​的​,允​许​非​授​权​帐​户​的​访​问​可​能​会​降​低​安​全​等​级​。​

7.1. SELinux 和​虚​拟​化​

安​全​性​加​强 Linux 是​由 Linux 社​区​协​助 NSA 开​发​,可​为 Linux 提​供​更​强​大​的​安​全​性​。​SELinux 可​限​制​攻​击​者​的​能​力​,并​可​阻​止​很​多​常​见​安​全​性​漏​洞​,比​如​缓​存​溢​出​攻​击​以​及​特​权​升​级​。​因​为​这​些​有​点​,Fedora 建​议​所​有 Linux 系​统​应​启​用 SELinux 并​在 enforcing 模​式​下​运​行​。​
如​果​启​用​了 SELinux 或​者​该​映​像​不​在​正​确​目​录​中​时​,SELinux 会​阻​止​载​入​客​户​端​映​像​。​SELinux 要​求​将​所​有​客​户​端​映​像​保​存​在 /var/lib/libvirt/images 目​录​中​。​
在​使​用 enforcing 模​式​的 SELinux 中​添​加​基​于 LVM 的​存​储​
下​面​的​内​容​是​在​启​用​了 SELinux 的​虚​拟​客​户​端​中​添​加​逻​辑​卷​的​示​例​。​这​些​说​明​也​可​用​于​硬​盘​分​区​。​
过程 7.1. 在​启​用​了 SELinux 的​虚​拟​客​户​端​中​创​建​并​挂​载​逻​辑​卷​
  1. 创​建​逻​辑​卷​。​这​个​示​例​创​建​了​一​个 5GB 的​逻​辑​卷​,名​为 NewVolumeName,位​置​在​名​为 volumegroup 的​卷​组​中​。​
    # lvcreate -n NewVolumeName -L 5G volumegroup
    
  2. 使​用​支​持​扩​展​属​性​的​文​件​系​统​格​式​化 NewVolumeName 逻​辑​卷​,比​如 ext3。​
    # 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 在​未​修​改​的​模​式​中​设​置 xend。​最​好​是​为​单​一​守​护​进​程​而​不​是​整​个​系​统​禁​用​此​保​护​。​建​议​您​不​要​将​广​泛​使​用​的​目​录​重​新​标​记​为 xen_image_t。​

第 8 章 网​络​配​置​

本​章​提​供​基​于 libvirt 应​用​程​序​使​用​的​通​用​联​网​配​置​说​明​。​这​个​信​息​对​所​有​管​理​程​序​,无​论​是 Xen、​KVM 还​是​其​它​都​适​用​。​有​关​详​情​请​参​考 libvirt 网​络​构​架​文​档​。​
两​个​通​用​设​置​为​“​虚​拟​网​络​”​或​者​“​共​享​物​理​设​备​”​。​前​一​个​在​所​有​发​行​本​中​都​一​致​,可​即​时​使​用​。​后​一​个​需​要​针​对​具​体​发​行​本​进​行​手​动​配​置​。​

8.1. libvirt 的​网​络​地​址​转​换​(NAT)

共​享​网​络​连​接​最​常​用​的​方​法​之​一​就​是​使​用​网​络​地​址​转​换​(NAT)转​发​(也​就​是​我​们​说​的​虚​拟​网​络​)。​
主​机​配​置​
每​个​标​准 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 规​则​,该​规​则​允​许​所​有​进​入​和​来​自​附​加​到 virbr0 设​备​的​客​户​端​流​量​,该​设​备​可​处​于 INPUT、​FORWARD、​OUTPUTPOSTROUTING 链​中​。​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 网​络​脚​本​
如​果​您​的​系​统​使​用 Xen 桥​接​,则​建​议​您​编​辑 /etc/xen/xend-config.sxp 文​件​并​更​改​以​下​行​禁​用​默​认 Xen 网​络​桥​接​:
(network-script network-bridge)
至​:
(network-script /bin/true)
禁​用​网​络​管​理​器​(NetworkManager)
网​络​管​理​器​不​支​持​桥​接​。​必​须​禁​用​网​络​管​理​器​才​可​使​用​旧​的​网​络​脚​本​联​网​。​
# chkconfig NetworkManager off
# chkconfig network on
# service NetworkManager stop
# service network start

Note

与​其​关​闭​网​络​管​理​器​,您​也​可​以​在​示​例​使​用​的 ifcfg-* 脚​本​中​添​加 "NM_CONTROLLED=no"。​
生​成​网​络​初​始​化​脚​本​
创​建​或​者​编​辑​以​下​两​个​网​络​配​置​文​件​。​可​重​复​这​一​步​(使​用​不​同​名​称​)添​加​额​外​网​络​桥​接​。​
改​为 /etc/sysconfig/network-scripts 目​录​:
# cd /etc/sysconfig/network-scripts
为​您​添​加​到​桥​接​中​的​设​备​打​开​网​络​脚​本​。​在​这​个​示​例​中​,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 变​量​配​置​设​备​的​最​大​传​输​单​位​(MTU)。​
MTU=9000
/etc/sysconfig/network-scripts 目​录​中​创​建​名​为 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
您​现​在​应​该​有​一​个​“​共​享​物​理​设​备​”​,它​可​访​问​客​户​端​并​对 LAN 有​完​全​访​问​权​限​。​验​证​您​的​新​桥​接​:
# 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 任​务​和​程​序​的​全​虚​拟​客​户​端​中​使​用​半​虚​拟​驱​动​程​序​。​
新​的 Fedora 版​本​中​可​自​动​载​入​并​安​装 KVM 半​虚​拟​驱​动​程​序​。​那​些 Fedora 版​本​探​测​并​安​装​这​些​驱​动​程​序​因​此​不​需​要​额​外​的​安​装​步​骤​。​
与 KVM 模​块​一​样​,virtio 驱​动​程​序​只​可​用​于​运​行​较​新​版​本 Fedora 的​主​机​。​

Note

每​个​客​户​端​只​有 28 个 PCI 插​槽​可​用​于​附​加​设​备​。​每​个​半​虚​拟​网​络​或​者​块​设​备​使​用​一​个​插​槽​。​每​个​客​户​端​最​多​可​使​用 28 个​附​加​设​备​,它​们​可​以​是​任​意​组​合​的​半​虚​拟​网​络​、​半​虚​拟​磁​盘​设​备​或​者​其​它​使​用 VTd 的 PCI 设​备​。​
以​下​微​软 Windows 版​本​支​持 KVM 半​虚​拟​驱​动​程​序​:
  • Windows XP,
  • Windows Server 2003,
  • Windows Vista 以​及​
  • Windows Server 2008。​

9.1. 安​装 KVM Windows 半​虚​拟​驱​动​程​序​

这​部​分​论​述​了​如​何​安​装 KVM Windows 半​虚​拟​驱​动​程​序​。​KVM 半​虚​拟​驱​动​程​序​可​在 Windows 安​装​过​程​中​载​入​,也​可​在​客​户​端​安​装​后​载​入​。​
您​可​使​用​以​下​方​法​之​一​在​您​的​主​机​中​安​装​半​虚​拟​驱​动​程​序​:
  • 在​客​户​端​可​访​问​的​网​络​中​托​管​安​装​文​件​,
  • 使​用​驱​动​程​序​安​装​磁​盘 .iso 的​虚​拟​光​驱​设​备​或​者​
  • 使​用​虚​拟​软​盘​设​备​在​引​导​时​安​装​这​些​驱​动​程​序​(用​于 Windows 客​户​端​)。​
这​个​指​南​论​述​了​将​半​虚​拟​安​装​程​序​磁​盘​作​为​虚​拟​光​驱​设​备​的​安​装​。​
  1. 下​载​驱​动​程​序​

    微​软​提​供​这​些​驱​动​程​序​(windowsservercatalog.com)。​
    virtio-win 软​件​包​在 /usr/share/virtio-win/ 目​录​中​安​装​安​装​光​驱​映​像 virtio-win.iso。​
  2. 安​装​半​虚​拟​驱​动​程​序​

    建​议​您​在​附​加​或​者​修​改​设​备​使​其​使​用​半​虚​拟​驱​动​程​序​前​在​客​户​端​中​安​装​该​驱​动​程​序​。​
    在​保​存​根​文​件​系​统​的​块​设​备​或​者​需​要​引​导​客​户​端​的​其​它​块​设​备​中​,必​须​在​修​改​该​设​备​前​安​装​驱​动​程​序​。​如​果​没​有​在​客​户​端​中​安​装​驱​动​程​序​,但​将​驱​动​程​序​设​定​为 virtio 驱​动​程​序​,则​无​法​引​导​该​客​户​端​。​
使​用 virt-manager 挂​载​映​像​
使​用 virt-manager 添​加​光​驱​映​像​请​参​考 过程 9.1, “使​用 virt-manager 在 Windows 客​户​端​中​挂​载​光​驱​映​像​”。​
过程 9.1. 使​用 virt-manager 在 Windows 客​户​端​中​挂​载​光​驱​映​像​
  1. 打​开 virt-manager,在​虚​拟​机​列​表​中​选​择​您​的​虚​拟​客​户​端​并​按 详​情​ 按​钮​。​
  2. 点​击​「​详​情​」​面​板​中​的 添​加​ 按​钮​。​
  3. 这​样​就​打​开​了​一​个​添​加​新​设​备​向​导​。​从​下​拉​菜​单​中​选​择​「​存​储​设​备​」​,然​后​点 前​进​
  4. 选​择​「​文​件​(磁​盘​映​像​)」​选​项​,并​将​半​虚​拟​驱​动​程​序​文​件​设​定​为 .iso 文​件​。​如​果​您​使​用 yum 安​装​半​虚​拟​驱​动​程​序​软​件​包​,那​么​这​个 .iso 文​件​的​位​置​就​是 /usr/share/xenpv-win。​
    如​果​该​驱​动​程​序​是​保​存​在​物​理​光​盘​中​,请​使​用​「​普​通​磁​盘​分​区​」​选​项​。​
    将​「​设​备​类​型​」​设​定​为​「​IDE cdrom」​并​点​击 前​进​ 继​续​。
  5. 该​磁​盘​已​分​配​,启​动​客​户​端​后​即​可​使​用​。​请​点​击 完​成​ 关​闭​向​导​,如​果​有​错​误​操​作​请​返​回​。
使​用​虚​拟​软​盘​安​装​
这​个​过​程​包​括​在 Windows 安​装​过​程​中​安​装​半​虚​拟​驱​动​程​序​。​
  • 第​一​次​安​装 Windows VM 时​请​使​用​立​即​运​行​菜​单​将 viostor.vfd 附​加​为​一​个​软​盘​
    1. Windows Server 2003

      当​窗​口​提​示​按 F6 使​用​第​三​方​驱​动​程​序​时​,请​按 F6 并​根​据​屏​幕​指​示​操​作​。​
    2. Windows Server 2008

      当​安​装​程​序​提​示​您​安​装​驱​动​程​序​时​,请​点​击​“​载​入​驱​动​程​序​”​将​安​装​程​序​指​向​驱​动​器 A: 并​选​择​适​合​您​的​操​作​系​统​和​脚​本​(bittage)的​驱​动​程​序​
在​现​有​设​备​中​使​用 KVM 半​虚​拟​驱​动​程​序​
修​改​现​有​附​加​到​客​户​端​中​的​硬​盘​使​其​使​用 virtio 驱​动​程​序​而​不​是​虚​拟 IDE 驱​动​程​序​。​这​个​示​例​编​辑​了 libvirt 配​置​文​件​。​另​外​使​用 virt-manager 、​virsh attach-disk 或​者 virsh 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 半​虚​拟​驱​动​程​序​
这​个​步​骤​是​用 virt-manager 创​建​使​用 KVM 半​虚​拟​驱​动​程​序​的​新​设​备​。​
另​外​,使​用 virsh attach-disk 或​者 virsh attach-interface 命​令​可​附​加​使​用​半​虚​拟​驱​动​程​序​的​设​备​。​

首​先​安​装​驱​动​程​序​

请​在 Windows 客​户​端​中​安​装​新​设​备​前​确​定​安​装​了​该​驱​动​程​序​。​如​果​该​驱​动​程​序​不​可​用​,则​无​法​识​别​和​使​用​该​设​备​。​
  1. 请​在 virt-manager 中​双​击​客​户​端​名​称​打​开​虚​拟​客​户​端​。​
  2. 打​开​「​硬​件​」​标​签​。​
  3. 按​「​添​加​硬​件​」​按​钮​。​
  4. 在​“​添​加​虚​拟​硬​盘​”​标​签​中​选​择​「​存​储​」​或​者​「​网​络​」​作​为​设​备​类​型​。​
    1. 新​磁​盘​设​备​
      选​择​存​储​设​备​或​者​基​于​文​件​的​映​像​。​选​择​「​Virtio 磁​盘​」​作​为​「​设​备​类​型​」​并​按​「​前​进​」​。​
    2. 新​网​络​设​备​
      选​择​「​虚​拟​网​络​」​或​者​「​共​享​物​理​设​备​」​。​选​择​「​virtio」​ 作​为​「​设​备​类​型​」​并​按​「​前​进​」​。​
  5. 按​「​完​成​」​保​存​该​设​备​。​
  6. 重​启​该​客​户​端​。​Windows 客​户​端​要​在​重​启​后​才​可​识​别​该​设​备​。​

部分 III. Administration

第 10 章 用 xend 管​理​客​户​端​

xend 节​点​控​制​守​护​进​程​执​行​某​些​与​虚​拟​机​相​关​的​系​统​管​理​功​能​。​这​个​守​护​进​程​控​制​虚​拟​资​源​,而​且​必​须​运​行 xend 与​虚​拟​机​互​动​。​在​您​启​动 xend 之​前​,您​必​须​编​辑 xend 的​配​置​文​件 xend-config.sxp 来​指​定​操​作​参​数​。​下​面​是​您​可​以​在 xend-config.sxp 配​置​文​件​里​启​用​或​禁​用​的​参​数​:
项​目​ Description
(console-limit)
决​定​控​制​台​服​务​器​的​内​存​缓​冲​限​制 xend_unix_server,并​根​据​域​分​配​数​值​。​
(min-mem)
决​定​为 domain0 保​留​的​最​小​内​存​数​量​(以 MB 为​单​位​),如​果​为 0,则​值​不​变​化​。​
(dom0-cpus)
决​定 domain0 使​用​的 CPU 数​量​(默​认​情​况​下​至​少​分​配​一​个 CPU)。​
(enable-dump)
决​定​当​发​生​崩​溃​时​启​用​转​储​(默​认​为 0)。​
(external-migration-tool)
决​定​用​来​处​理​外​部​设​备​迁​移​的​脚​本​或​应​用​程​序​。​脚​本​必​须​位​于 etc/xen/scripts/external-device-migrate。​
(logfile)
决​定​日​志​文​件​的​位​置​(默​认​为 /var/log/xend.log)。​
(loglevel)
过​滤​日​志​模​式​值​:DEBUG、​INFO、​WARNING、​ERROR 或 CRITICAL(默​认​为 DEBUG)。​
(network-script)
决​定​启​用​联​网​环​境​的​脚​本​(脚​本​必​须​位​于 etc/xen/scripts 目​录​)。​
(xend-http-server)
启​用 http stream 数​据​包​管​理​服​务​器​(默​认​为 no)。​
(xend-unix-server)
启​用 unix 域​套​接​字​服​务​器​(套​接​字​服​务​器​是​一​个​通​信​终​点​,它​处​理​底​层​的​网​络​连​接​以​及​接​受​或​拒​绝​转​入​的​连​接​)。​默​认​值​为 yes。​
(xend-relocation-server)
启​用​用​于​跨​机​器​迁​移​的​重​定​向​服​务​器​(默​认​为 no)。​
(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)
决​定​域​套​接​字​服​务​器​绑​定​的​地​址​。​默​认​为​允​许​所​有​连​接​。​
表 10.1. xend 配​置​参​数​

在​设​置​了​这​些​操​作​参​数​后​,您​应​该​确​定 xend 是​否​正​在​运​行​,如​果​没​有​,就​初​始​化​该​守​护​进​程​。​在​命​令​提​示​符​后​,您​可​以​用​下​面​的​命​令​启​动 xend 守​护​进​程​:
service xend start
你​可​以​用 xend 来​停​止​这​个​守​护​进​程​:
service xend stop
这​个​命​令​停​止​了​守​护​进​程​。​
你​也​可​以​用 xend 来​重​新​启​动​守​护​进​程​:
service xend restart
守​护​进​程​再​次​启​动​了​。​
你​可​以​检​查 xend 守​护​进​程​的​状​态​。​
service xend status
下​面​的​输​出​显​示​了​守​护​进​程​的​状​态​。​

在​引​导​时​启​用 xend

使​用 chkconfig 命​令​在 initscript 中​添​加 xend。​
chkconfig --level 345 xend
现​在​会​在​运​行​级​别 3、​4 和 5 中​启​动 xend 。​

第 11 章 KVM 客​户​端​计​时​管​理​

KVM 使​用​很​多​先​进 CPU 的​恒​定​时​间​戳​计​数​器​(TSC)特​性​。​一​些​没​有​恒​定​时​间​戳​计​数​器​的 CPU 会​影​响 KVM 中​运​行​的​客​户​端​计​时​。​无​法​准​确​计​时​的​客​户​端​可​能​会​严​重​影​响​一​些​联​网​应​用​程​序​,因​为​您​的​客​户​端​可​能​会​比​实​际​时​间​运​行​得​快​或​者​慢​。​
不​准​确​的​时​钟​和​计​数​器​为​客​户​端​带​来​的​一​些​问​题​:
  • 时​钟​可​能​会​无​法​与​实​际​时​间​同​步​,这​将​导​致​会​话​无​效​并​影​响​到​网​络​。​
  • 时​钟​慢​一​些​的​客​户​端​迁​移​时​会​出​现​问​题​。​
  • 客​户​端​可​能​会​停​止​或​者​崩​溃​。​
这​些​问​题​在​其​它​虚​拟​化​平​台​中​也​存​在​,因​此​应​经​常​测​试​计​时​。​

NTP

应​该​在​主​机​和​客​户​端​中​运​行​网​络​时​间​协​议​(NTP)守​护​进​程​。​请​启​用 ntpd 服​务​:
# service ntpd start
请​在​默​认​启​动​序​列​中​添​加 ntpd 服​务​:
# chkconfig ntpd on
使​用 ntpd 服​务​应​该​可​以​在​各​种​情​况​下​最​小​化​时​钟​偏​移​造​成​的​影​响​。​
确​定​您​的 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 state 或​者​迁​移​到​拥​有​更​迅​速 TSC 的​主​机​所​致​。​要​停​止 deep C state,即​停​止 TSC,请​在​主​机 grub 的​内​核​引​导​选​项​中​添​加 "processor.max_cstate=1":
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
要​禁​用 cpufreq(只​在​没​有 cpufreq 的​主​机​中​需​要​),请​编​辑 /etc/sysconfig/cpuspeed 配​置​文​件​并​将 MIN_SPEEDMAX_SPEED 变​量​改​为​可​用​的​最​高​频​率​。​有​效​上​限​请​查​看 /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies 文​件​。​
在​红​帽​企​业​版 Linux 客​户​端​中​使​用​半​虚​拟​时​钟​
某​些​红​帽​企​业​版 Linux 客​户​端​需​要​附​加​内​核​参​数​。​这​些​参​数​的​设​置​可​通​过​在​客​户​端 /boot/grub/grub.conf 文​件​的 /kernel 行​结​尾​添​加​它​们​完​成​。​
下​表​列​出​了​红​帽​企​业​版 Linux 版​本​以​及​没​有​恒​定​时​间​戳​计​数​器​客​户​端​所​需​要​的​参​数​。​
红​帽​企​业​版 Linux附​加​客​户​端​内​核​参​数​
使​用​半​虚​拟​时​钟​的 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 服​务​器 2003 boot.ini 文​件​。​

第 12 章 KVM 实​时​迁​移​

本​章​论​述​了​如​何​将​在 KVM 管​理​程​序​中​运​行​的​客​户​端​迁​移​到​其​它 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 内​存​的​客​户​端​在 1Gbit 以​太​网​链​接​中​平​均​需​要​十​秒​左​右​。​
实​时​迁​移​可​让​客​户​端​继​续​在​源​主​机​中​运​行​并​在​不​停​止​客​户​端​的​情​况​下​开​始​移​动​内​存​。​发​送​映​像​的​同​时​监​控​所​有​修​改​的​内​存​页​面​的​变​化​并​将​其​发​送​到​目​的​地​。​使​用​更​改​的​页​面​更​新​内​存​。​持​续​进​行​此​过​程​直​到​客​户​端​允​许​的​暂​停​时​间​与​预​计​最​后​几​页​的​传​输​时​间​相​等​。​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 打​开​端​口​并​在 /etc/hosts.allow 文​件​中​添​加 NFS。​
    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。​在​目​的​地 URL 结​尾​添​加 /system 告​知 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 套​接​字​、​SSH 以​及​不​加​密​的 TCP。​有​关​使​用​其​它​方​法​的​详​情​请​参​考 第 13 章 虚​拟​客​户​端​的​远​程​管​理​。​

12.4. 使​用 virt-manager 迁​移​

这​部​分​论​述​了​如​何​使​用 virt-manager 迁​移​使​用 KVM 的​客​户​端​。​
  1. 连​接​源​和​目​标​主​机​。​在​「​文​件​」​菜​单​中​点​击​「​添​加​连​接​」​,此​时​会​出​现​「​添​加​连​接​」​窗​口​。​
    输​入​以​下​详​情​:
    • 「​管​理​程​序​」​:请​选​择​「​QEMU」​。​
    • 「​连​接​」​:选​择​连​接​类​型​。​
    • 「​主​机​名​」​:输​入​主​机​名​。​
    点​击 连​接​。​
    虚​拟​机​管​理​器​显​示​连​接​的​主​机​列​表​。​
  2. 在​源​主​机​和​目​标​主​机​中​添​加​有​同​样 NFS 的​存​储​池​。​
    在​「​编​辑​」​菜​单​中​点​击​「​主​机​详​情​」​,此​时​会​出​现​主​机​详​情​窗​口​。​
    点​击 存​储​ 标​签​。​
  3. 添​加​一​个​新​的​存​储​池​。​在​窗​口​的​左​下​角​点​击 + 按​钮​。​此​时​会​出​现​添​加​新​存​储​池​窗​口​。​
    输​入​以​下​详​情​:
    • 「​名​称​」​:输​入​存​储​池​名​称​。​
    • 「​类​型​」​:选​择​「​netfs:网​络​导​出​的​目​录​」​。​
    点​击 前​进​。​
  4. 输​入​以​下​详​情​:
    • 「​格​式​」​:选​择​存​储​类​型​。​实​时​迁​移​必​须​是 NFS 或​者 iSCSI。​
    • 「​主​机​名​称​」​:输​入​存​储​服​务​器​的 IP 地​址​或​者​完​全​限​定​域​名​。​
    点​击 完​成​。​
  5. 在​共​享​存​储​池​中​创​建​一​个​新​卷​,点​击 新​建​卷​。​
  6. 输​入​详​情​然​后​点​击 创​建​卷​。​
  7. 使​用​新​卷​创​建​虚​拟​机​,然​后​运​行​该​虚​拟​机​。​
    此​时​会​出​现​虚​拟​机​窗​口​。​
  8. 在​虚​拟​机​管​理​器​窗​口​中​右​键​点​击​虚​拟​机​,选​择 「​迁​移​」​,然​后​点​击​迁​移​位​置​。​
  9. 点​击 是​ 确​定​迁​移​。​
    虚​拟​机​管​理​器​在​其​新​位​置​显​示​虚​拟​机​。​
    虚​拟​机​管​理​器​窗​口​显​示​新​虚​拟​机​的​位​置​。​

第 13 章 虚​拟​客​户​端​的​远​程​管​理​

这​部​分​将​论​述​如​何​使​用 ssh、​TLS 和 SSL 远​程​管​理​您​的​虚​拟​化​客​户​端​。​

13.1. 使​用 SSL 进​行​远​程​管​理​

ssh 软​件​包​提​供​加​密​网​络​协​议​,可​向​远​程​虚​拟​化​服​务​器​安​全​发​送​管​理​功​能​。​本​方​法​使​用 libvirt 通​过 SSH 连​接​安​全​管​理​远​程​机​器​。​所​有​验​证​都​通​过 SSH 公​钥​加​密​法​和​密​码​或​者​由​您​的​本​地 SSH 代​理​获​得​的​密​码​短​语​进​行​。​另​外​,每​个​客​户​端​虚​拟​机​的 VNC 控​制​台​都​将​通​过 SSH 连​接​。​
SSH 通​常​是​默​认​配​置​的​,这​样​您​就​可​以​设​定 SSH 密​钥​,并​且​不​需​要​额​外​的​防​火​墙​规​则​访​问​管​理​服​务​或​者 VNC 控​制​台​。​
在​使​用 SSH 对​您​的​虚​拟​机​进​行​远​程​管​理​时​需​要​注​意​几​点​,它​们​是​:
  • 您​需​要​以​根​用​户​身​份​登​录​访​问​远​程​机​器​来​管​理​虚​拟​机​,
  • 最​初​的​连​接​设​定​过​程​可​能​很​慢​,
  • 没​有​一​种​标​准​或​者​简​单​的​方​法​来​撤​销​所​有​主​机​或​者​客​户​端​中​的​用​户​密​钥​,且​
  • 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 命​令​连​接​到​远​程​机​器​并​将​您​复​制​的​文​件​添​加​到​认​证​的​密​钥​列​表​中​。​如​果​远​程​主​机​中​的​根​用​户​还​没​有​认​证​的​密​钥​列​表​,请​确​定​正​确​设​定​了​该​文​件​的​权​限​。​
    $ 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 守​护​进​程​(libvirtd
libvirt 守​护​进​程​提​供​管​理​虚​拟​机​的​界​面​。​您​应​该​使​用​安​装​的 libvirtd 守​护​进​程​并​在​每​个​需​要​您​管​理​的​远​程​主​机​中​运​行​该​进​程​。​使​用 Fedora kernel-xen 软​件​包​需​要 speci TODO。​
$ ssh root@somehost
# chkconfig libvirtd on
# service libvirtd start
配​置​完 libvirtSSH 后​,您​应​该​可​以​远​程​访​问​并​管​理​您​的​虚​拟​机​。​此​时​您​还​应​该​可​以​使​用 VNC 访​问​您​的​客​户​端​。​

13.2. 使​用 TLS 和 SSL 进​行​远​程​管​理​

您​可​以​使​用 TLS 和 SSL 管​理​虚​拟​机​。​TLS 和 SSL 提​供​更​高​的​灵​活​性​,但​要​比 ssh 复​杂​很​多​(请​参​考 第 13.1 节 “使​用 SSL 进​行​远​程​管​理​”)。​TLS 和 SSL 是​网​页​浏​览​器​用​来​进​行​安​全​连​接​的​同​一​个​技​术​。​libvirt 管​理​连​接​将​为​进​入​的​连​接​打​开​一​个 TCP 端​口​,这​些​连​接​是​安​全​加​密​的​,且​根​据 x509 证​书​进​行​验​证​。​除 VNC 控​制​台​外​,还​会​将​每​个​客​户​端​虚​拟​机​设​定​为​使​用​带 x509 证​书​验​证​的 TLS。​
这​个​方​法​不​需​要​在​要​进​行​管​理​的​远​程​机​器​中​有 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 目​录​需​要​以​下​三​个​文​件​:
  • ca-cert.pem - CA 证​书​
  • server-cert.pem - CA 签​注​的​服​务​器​证​书​
  • server-key.pem - 服​务​器​私​钥​
这​样​就​提​供​了​数​据​频​道​的​加​密​。​可​能​会​要​求​客​户​端​出​示​其​自​身 x509 证​书​作​为​验​证​方​法​。​要​启​用​这​个​功​能​,请​删​除 (vnc-x509-verify 1) 参​数​的​注​释​符​号​。​
virt-managervirsh 客​户​端​设​定​
此​时​的​客​户​端​设​定​有​一​些​不​同​。​要​通​过 TLS 启​用 libvirt 管​理 API,就​必​须​将 CA 以​及​客​户​端​证​书​放​在 /etc/pki。​有​关​详​情​请​参​考 http://libvirt.org/remote.html。​
virt-manager 用​户​界​面​,连​接​到​主​机​时​请​使​用 'SSL/TLS' 传​送​机​制​。​
virsh 中 URL 有​以​下​格​式​:
  • 在 KVM 中​使​用 qemu://hostname.guestname/system。​
  • 在 Xen 中​使​用 xen://hostname.guestname/。​
要​为 VNC 启​用 SSL 和 TLS,需​要​您​将​证​书​验​证​以​及​客​户​端​证​书​放​在 $HOME/.pki 中​,即​以​下​三​个​文​件​:
  • CA 或​者 ca-cert.pem - CA 证​书​。​
  • libvirt-vnc 或​者 clientcert.pem - CA 签​注​的​客​户​端​证​书​。​
  • libvirt-vnc 或​者 clientkey.pem - 客​户​端​私​钥​。​

13.3. 传​输​模​式​

对​于​远​程​管​理​,libvirt 支​持​以​下​传​输​模​式​:
传​输​层​安​全​性​(TLS)
使​用​传​输​层​安​全​性 TLS(SSL 3.1)认​证​和​加​密​的 TP/IP 插​槽​通​常​侦​听​在​公​用​端​口​号​上​进​行​侦​听​。​要​使​用​这​个​方​法​,您​需​要​生​成​客​户​端​和​服​务​器​证​书​。​标​准​端​口​为 16514。​
UNIX 插​槽​
Unix 域​插​槽​只​能​从​本​地​机​器​访​问​。​插​槽​是​不​加​密​的​,并​使​用 UNIX 权​限​或​者 SELinux 进​行​认​证​。​标​准​插​槽​名​称​为 /var/run/libvirt/libvirt-sock/var/run/libvirt/libvirt-sock-ro(用​于​只​读​连​接​)。​
SSH
通​过​安​全 Shell 协​议​(SSH)连​接​传​输​。​需​要​安​装 Netcat(nc 软​件​包​)。​必​须​在​远​程​机​器​中​运​行 libvirt 守​护​进​程​(libvirtd)。​必​须​为 SSH 访​问​打​开​端​口 22。​您​应​该​使​用​某​些 ssh 密​钥​管​理​(例​如​:ssh-agent 程​序​)或​者​提​示​您​输​入​密​码​。​
ext
ext 参​数​是​可​用​于 libvirt 之​外​生​成​连​接​到​远​程​机​器​的​任​意​外​部​程​序​。​这​通​常​包​括​第​三​方​程​序​以​及​不​支​持​的​安​全​程​序​。​
tcp
未​加​密​的 TCP/IP 插​槽​。​不​建​议​在​产​品​中​使​用​,一​般​将​其​禁​用​,但​管​理​员​可​使​用​它​进​行​测​试​或​者​在​信​托​网​络​中​使​用​。​默​认​端​口​为 16509。​
默​认​传​输​,如​果​没​有​具​体​指​定​,则​为 tls。​
远​程 URI
统​一​资​源​标​识​符​(URI)是 virshlibvirt 用​来​连​接​到​远​程​主​机​的​工​具​。​URI 还​可​与​带 --connect 参​数​的 virsh 命​令​一​同​使​用​执​行​单​一​命​令​或​者​在​远​程​主​机​中​迁​移​。​
libvirt URI 使​用​通​用​格​式​(方​括​号​中​的​内​容​,即 "[]",代​表​可​选​功​能​):
driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]
必​须​提​供​传​输​方​法​或​者​主​机​名​以​便​使​其​与​本​地 URI 区​分​。​
远​程​管​理​参​数​示​例​
  • 在​名​为 towada 的​主​机​中​使​用 SSH 传​输​和 SSH 用​户​名 ccurran 连​接​到​远​程 Xen 管​理​程​序​。​
    xen+ssh://ccurran@towada/
    
  • 使​用 TLS 在​名​为 towada 的​主​机​中​连​接​到​远​程 Xen 监​控​程​序​。​
    xen://towada/
    
  • 使​用 TLS 在​名​为 towada 的​主​机​中​连​接​到​远​程 Xen 监​控​程​序​。​no_verify=1 告​诉 libvirt 不​要​验​证​服​务​器​证​书​。​
    xen://towada/?no_verify=1
    
  • 使​用 SSH 在​主​机 towada 中​连​接​到​远​程 KVM 管​理​程​序​。​
    qemu+ssh://towada/system
    
测​试​示​例​
  • 使​用​非​标​准 UNIX 插​槽​连​接​到​本​地 KVM 管​理​程​序​。​在​此​特​别​提​供​了​到​该 Unix 插​槽​的​完​整​路​径​。​
    qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
    
  • 使​用​未​加​密 TCP/IP 将 libvirt 守​护​进​程​连​接​到​端​口 5000 中 IP 地​址​为 10.1.1.10 的​服​务​器​。​这​使​用​带​默​认​设​置​的​测​试​驱​动​程​序​。​
    test+tcp://10.1.1.10:5000/default
    
额​外 URI 参​数​
在​远​程 URI 中​可​附​加​额​外​参​数​。​下​面​的​表​格 表 13.1 “额​外 URI 参​数​” 包​含​可​识​别​的​参​数​。​其​它​参​数​将​被​忽​略​。​注​意​:参​数​值​必​须​是 URI 以​外​的​值​(就​是​说​问​号​(?)是​添​加​在​参​数​前​,特​殊​符​号​将​转​换​成 URI 格​式​)。​
名​称​ 传​输​模​式​ Description 示​例​用​法​
name 所​有​模​式​ 为 virConnectOpen 功​能​提​供​的​名​称​。​该​名​称​通​常​由​删​除​的​传​输​、​主​机​名​、​端​口​号​、​用​户​名​以​及​远​程 URI 中​的​附​加​参​数​组​成​,但​在​这​个​非​常​复​杂​的​例​子​中​,最​好​提​供​单​独​的​名​称​。​ name=qemu:///system
命​令​ ssh 和 ext 外​部​命​令​。​ext 传​输​需​要​外​部​命​令​。​ssh 默​认​为 ssh。​PATH 是​为​该​命​令​进​行​搜​索​。​ command=/opt/openssh/bin/ssh
插​槽​ unix 和 ssh 到 UNIX 域​套​接​字​的​路​径​将​覆​盖​默​认​路​径​。​在 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,其​中 port、​username、​hostname 可​作​为​远​程 URI 的​一​部​分​指​定​,command、​netcat 和 socket 来​自​外​部​参​数​(或​者​合​理​的​默​认​设​置​)。​ netcat=/opt/netcat/bin/nc
no_verify tls 如​果​设​定​一​个​非​零​值​,则​会​禁​止​客​户​端​坚​持​服​务​器​证​书​。​注​意​:要​禁​用​服​务​器​检​查​客​户​端​证​书​或​者 IP 地​址​,您​必​须​更​改 libvirtd 配​置​。​ no_verify=1
no_tty ssh 如​果​设​定​一​个​非​零​值​,则​会​在​无​法​自​动​登​录​到​远​程​机​器​时​禁​止 ssh 询​问​密​码​(在​使​用 ssh-agent 或​者​类​似​程​序​的​情​况​下​)。​在​您​无​法​访​问​终​端​时​使​用​这​个​值 -- 例​如​在​使​用 libvirt 的​图​形​程​序​中​。​ no_tty=1
表 13.1. 额​外 URI 参​数​

部分 IV. 虚​拟​化​参​考​指​南​

第 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 是​用​来​管​理​客​户​端​及​其​管​理​程​序​的​命​令​行​界​面​工​具​。​
virsh 工​具​是​构​建​在 libvirt 管​理 API 上​,可​作​为 xm 命​令​和​图​形​客​户​端​管​理​程​序​(virt-manager)的​替​代​工​具​使​用​。​非​特​权​用​户​只​能​以​只​读​模​式​使​用 virsh。​您​可​使​用 virsh 为​客​户​端​机​器​执​行​脚​本​。​
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 命​令​管​理​客​户​端​及​管​理​程​序​资​源​:
命​令​ Description
setmem 为​客​户​端​设​定​分​配​的​内​存​。​
setmaxmem 为​管​理​程​序​设​定​内​存​上​限​。​
setvcpus 修​改​为​客​户​端​分​配​的​虚​拟 CPU 数​目​。​
vcpuinfo 显​示​客​户​端​的​虚​拟 CPU 信​息​。​
vcpupin 控​制​客​户​端​的​虚​拟 CPU 亲​和​性​。​
domblkstat 显​示​正​在​运​行​的​客​户​端​的​块​设​备​统​计​。​
domifstat 显​示​正​在​运​行​的​客​户​端​的​网​络​接​口​统​计​。​
attach-device 使​用 XML 文​件​中​的​设​备​定​义​在​客​户​端​中​添​加​设​备​。​
attach-disk 在​客​户​端​中​附​加​新​磁​盘​设​备​。​
attach-interface 在​客​户​端​中​附​加​新​网​络​接​口​。​
detach-device 从​客​户​端​中​分​离​设​备​,使​用​同​样​的 XML 描​述​作​为​命​令 attach-device。​
detach-disk 从​客​户​端​中​分​离​磁​盘​设​备​。​
detach-interface 从​客​户​端​中​分​离​网​络​接​口​。​
表 15.2. 资​源​管​理​选​项​

这​些​是​其​它 virsh 选​项​:
命​令​ Description
version 显​示 virsh 版​本​
nodeinfo 有​关​管​理​程​序​的​输​出​信​息​
表 15.3. 其​它​选​项​

连​接​至​管​理​程​序​
使​用 virsh 连​接​到​管​理​程​序​会​话​:
# virsh connect {hostname OR URL}
其​中 <name> 是​管​理​程​序​所​在​的​机​器​名​。​要​初​始​化​只​读​连​接​,请​在​上​面​的​命​令​中​附​加 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 创​建​客​户​端​:
# 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 选​项​(恢​复​客​户​端​)才​能​重​新​启​动​客​户​端​。​
恢​复​客​户​端​
使​用 virshresume 选​项​恢​复​客​户​端​:
# virsh resume {domain-id, domain-name or domain-uuid}
这​个​操​作​是​立​即​生​效​的​,客​户​端​状​态​将​处​于 suspend resume 的​循​环​中​。​
保​存​客​户​端​
使​用 virsh 命​令​将​客​户​端​的​当​前​状​态​保​存​到​文​件​中​:
# virsh save {domain-name, domain-id or domain-uuid} filename
这​个​命​令​停​止​您​指​定​的​客​户​端​并​将​数​据​保​存​到​文​件​中​,整​个​过​程​所​需​的​时​间​根​据​您​为​客​户​端​分​配​的​内​存​数​量​而​有​所​不​同​。​您​可​以​用 restore 选​项​(恢​复​客​户​端​)来​恢​复​客​户​端​状​态​。​保​存​与​暂​停​类​似​,它​除​了​暂​停​客​户​端​外​还​保​存​了​客​户​端​的​当​前​状​态​。​
恢​复​客​户​端​
请​使​用 virsh 恢​复​之​前​使​用 virsh save 命​令​保​存​的​客​户​端​(保​存​客​户​端​):
# virsh restore filename
这​个​命​令​重​新​启​动​了​保​存​的​客​户​端​,这​会​需​要​一​段​时​间​。​客​户​端​名​称​和 UUID 都​会​被​保​留​,但​会​分​配​一​个​新​的 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 选​项​(关​闭​客​户​端​)。​
获​得​客​户​端​域 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
显​示​客​户​端​信​息
使​用​带​客​户​端​域 ID、​域​名​或​者 UUID 的 virsh 命​令​可​显​示​指​定​客​户​端​的​信​息​:
# 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 输​出​结​果​分​类​成​以​下 6 个​状​态​之​一​(如​下​)。​
  • running 状​态​是​指​目​前​在 CPU 中​活​跃​的​客​户​端​。​
  • 列​为 blocked 的​客​户​端​是​被​阻​断​的​,且​目​前​没​有​运​行​或​者​无​法​运​行​。​这​是​由​于​客​户​端​正​在​等​待 I/O(传​统​的​等​待​状​态​)或​者​客​户​端​处​于​睡​眠​模​式​。​
  • paused 状​态​列​出​暂​停​的​域​。​如​果​管​理​员​在 virt-manager、​xm pause 或​者 virsh suspend 中​使​用 pause 标​记​就​会​出​现​这​种​状​态​。​当​客​户​端​处​于​暂​停​状​态​时​,它​仍​会​消​耗​内​存​和​其​它​资​源​,但​无​法​从​管​理​程​序​中​调​度 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 为​单​位​指​定 count。​新 count 值​不​能​超​过​您​创​建​客​户​端​时​指​定​的​数​值​。​大​多​数​客​户​端​操​作​系​统​需​要​不​低​于 64MB 的​值​。​较​高​的​最​大​内​存​值​不​会​影​响​活​跃​的​客​户​端​,除​非​新​值​较​小​,这​会​降​低​可​用​内​存​量​。​
显​示​客​户​端​块​设​备​信​息​
使​用 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 network-name — 自​动​启​动​指​定​为 network-name 的​网​络​。​
  • virsh net-create XMLfile — 使​用​现​有 XML 文​件​创​建​并​启​动​新​网​络​。​
  • virsh net-define XMLfile — 使​用​现​有 XML 文​件​创​建​新​网​络​设​备​但​不​启​动​。​
  • virsh net-destroy network-name — 销​毁​指​定​为 network-name 的​网​络​。​
  • virsh net-name networkUUID — 将​指​定​的 networkUUID 转​换​为​网​络​名​称​。​
  • virsh net-uuid network-name — 将​指​定​的 network-name 转​换​为​网​络 UUID。​
  • virsh net-start nameOfInactiveNetwork — 启​动​不​活​跃​的​网​络​。​
  • virsh net-undefine nameOfInactiveNetwork — 删​除​不​活​跃​网​络​的​定​义​。​

第 16 章 用​虚​拟​机​管​理​器​(virt-manager)管​理​客​户​端​

本​部​分​内​容​论​述​了​虚​拟​机​管​理​器​(virt-manager)窗​口​、​对​话​框​及​各​种​的 GUI 控​制​。​
virt-manager 提​供​管​理​程​序​以​及​您​系​统​和​远​程​机​器​中​客​户​端​的​图​形​视​图​。​您​可​使​用 virt-manager 定​义​半​虚​拟​和​全​虚​拟​客​户​端​。​virt-manager 可​执​行​虚​拟​化​管​理​任​务​,其​中​包​括​:
  • 分​配​内​存​,
  • 分​配​虚​拟 CPU,
  • 监​控​操​作​性​能​,
  • 保​存​和​恢​复​、​暂​停​和​继​续​、​关​闭​和​启​动​虚​拟​客​户​端​,
  • 链​接​到​文​本​和​图​形​控​制​台​,以​及​
  • 实​时​和​离​线​迁​移​。​

16.1. 打​开​连​接​窗​口​

首​先​出​现​这​个​窗​口​,提​示​用​户​选​择​管​理​程​序​会​话​。​非​特​权​用​户​可​启​动​一​个​只​读​会​话​。​根​用​户​可​启​动​具​有​全​部​读​/写​状​态​的​会​话​。 一​般​使​用​请​选​择​「​本​地 Xen 主​机​」​选​项​或​者 QEMU(在 KVM 中​)。​
虚​拟​机​管​理​器​连​接​窗​口​
图 16.1. 虚​拟​机​管​理​器​连​接​窗​口​

16.2. 虚​拟​机​管​理​器​主​窗​口​

这​个​主​窗​口​显​示​了​所​有​运​行​的​虚​拟​机​及​目​前​分​配​给​它​们​的​资​源​(包​括 domain0),您​可​以​决​定​显​示​哪​些​字​段​。​双​击​某​个​虚​拟​机​将​出​现​这​个​特​定​机​器​的​相​应​控​制​台​。​选​择​一​个​虚​拟​机​并​双​击​「​详​情​」​按​钮​显​示​那​台​机​器​的​详​情​窗​口​。​您​还​可​以​进​入​「​文​件​」​菜​单​创​建​一​个​新​虚​拟​机​。​
虚​拟​机​管​理​器​主​窗​口​
图 16.2. 虚​拟​机​管​理​器​主​窗​口​

16.3. 虚​拟​机​管​理​器​详​情​窗​口

这​个​窗​口​显​示 virt-manager 提​供​的​客​户​端​实​时​资​源​使​用​的​图​形​和​统​计​数​据​。​UUID 字​段​显​示​了​虚​拟​机​的​全​局​唯​一​标​识​符​。​
virt-manager 详​情​窗​口​
图 16.3. virt-manager 详​情​窗​口​

16.4. 虚​拟​机​图​形​控​制​台

这​个​窗​口​显​示​了​虚​拟​机​的​图​形​控​制​台​。​半​虚​拟​客​户​端​和​全​虚​拟​客​户​端​使​用​不​同​的​技​术​导​出​其​本​地​虚​拟​帧​缓​冲​,但​是​这​两​种​技​术​都​使​用 VNC 使​其​可​用​于​虚​拟​机​管​理​器​的​控​制​台​窗​口​。​如​果​您​没​有​将​虚​拟​机​设​置​为​需​要​验​证​,则​在​显​示​前​虚​拟​机​图​形​控​制​台​会​提​示​您​输​入​密​码​。​
图​形​控​制​台​窗​口​
图 16.4. 图​形​控​制​台​窗​口​

安​全​性​和 VNC 注​记​

很​多​安​全​专​家​认​为 VNC 不​安​全​,但​是​我​们​做​了​一​些​修​改​以​便​在 Fedora 中​安​全​使​用 VNC 进​行​虚​拟​化​。​客​户​端​机​器​只​侦​听​本​地​主​机​(dom0)的​回​送​地​址​(127.0.0.1)。​这​样​就​保​证​了​只​有​主​机​中​那​些​有 shell 特​权​的​程​序​可​以​通​过 VNC 访​问 virt-manager 和​虚​拟​机​。​
将​根​据 第 13 章 虚​拟​客​户​端​的​远​程​管​理​ 的​说​明​执​行​远​程​管​理​。​TLS 可​提​供​管​理​客​户​端​和​主​机​系​统​的​企​业​级​安​全​性​。​
您​的​本​地​桌​面​可​以​截​获​组​合​键​(如 Ctrl+Alt+F11)以​防​止​其​被​发​送​到​客​户​端​机​器​。​您​可​以​使​用 virt-manager 的 '粘​滞​键​' 功​能​来​发​送​这​些​键​序​列​。​您​必​须​按​任​何​修​改​键​(如 Ctrl 或 Alt)三​次​,这​个​键​才​会​被​激​活​,直​到​按​了​下​一​个​非​修​饰​符​键​。​您​可​以​通​过​顺​序​按​下 'Ctrl Ctrl Ctrl Alt+F11' 将 Ctrl-Alt-F11 发​送​给​客​户​端​。​

16.5. Starting virt-manager

要​启​动 virt-manager 会​话​,请​打​开​「​应​用​程​序​」​菜​单​,然​后​点​击​「​系​统​工​具​」​,并​选​择​「​虚​拟​机​管​理​器​」​virt-manager)。​
此​时​会​出​现 virt-manager 主​窗​口​。​
启​动 virt-manager
图 16.5. 启​动 virt-manager

另​外​,您​可​以​在​下​面​命​令​中​演​示​的 ssh 远​程​启​动 virt-manager
ssh -X host's address[remotehost]# virt-manager
使​用 ssh 管​理​虚​拟​机​和​主​机​在 第 13.1 节 “使​用 SSL 进​行​远​程​管​理​” 中​有​进​一​步​的​论​述​。​

16.6. 恢​复​保​存​的​机​器

在​启​动​虚​拟​机​管​理​器​后​,主​窗​口​中​会​显​示​系​统​中​的​所​有​虚​拟​机​。​Domain 0 是​您​的​主​机​系​统​。​如​果​没​有​出​现​任​何​机​器​,说​明​目​前​系​统​中​没​有​虚​拟​机​在​运​行​。​
恢​复​以​前​保​存​的​会​话​:
  1. 在​「​文​件​」​菜​单​中​,选​择​「​恢​复​保​存​的​机​器​」​。​
    恢​复​虚​拟​机​
    图 16.6. 恢​复​虚​拟​机​

  2. 出​现​「​恢​复​虚​拟​机​」​主​窗​口​。​
  3. 导​航​至​正​确​的​目​录​并​选​择​保​存​的​会​话​文​件​。​
  4. 点​击​「​打​开​」​。​
虚​拟​机​管​理​器​主​窗​口​中​会​出​现​保​存​的​虚​拟​系​统​。​
恢​复​的​虚​拟​机​管​理​器​会​话​
图 16.7. 恢​复​的​虚​拟​机​管​理​器​会​话​

16.7. 显​示​客​户​端​详​情​

您​可​以​使​用​虚​拟​机​管​理​程​序​来​查​看​系​统​中​的​任​意​虚​拟​机​活​动​数​据​。​
查​看​虚​拟​系​统​细​节​:
  1. 在​虚​拟​机​管​理​器​主​窗​口​中​选​中​您​要​查​看​的​虚​拟​机​。​
    选​择​要​显​示​的​虚​拟​机
    图 16.8. 选​择​要​显​示​的​虚​拟​机

  2. 在​虚​拟​机​管​理​器​的​「​编​辑​」​菜​单​中​选​择​「​机​器​详​情​」​(或​在​虚​拟​机​管​理​器​主​窗​口​的​底​部​点​击​「​详​情​」​ 按​钮​)。​
    显​示​虚​拟​机​详​情​菜​单​
    图 16.9. 显​示​虚​拟​机​详​情​菜​单​

    出​现​虚​拟​机​详​情​总​览​窗​口​。​这​个​窗​口​显​示​了​您​指​定​域​的 CPU 和​内​存​使​用​情​况​。​
    显​示​客​户​端​详​情​总​览​
    图 16.10. 显​示​客​户​端​详​情​总​览​

  3. 在​「​虚​拟​机​详​情​」​窗​口​中​点​击​「​硬​件​」​ 标​签​。​
    出​现​「​虚​拟​机​详​情​硬​件​」​窗​口​。​
    显​示​客​户​端​硬​件​详​情
    图 16.11. 显​示​客​户​端​硬​件​详​情

  4. 在​「​硬​件​」​标​签​中​,点​击​「​处​理​器​」​查​看​或​修​改​当​前​的​处​理​器​分​配​情​况​。​
    处​理​器​分​配​面​板​
    图 16.12. 处​理​器​分​配​面​板​

  5. 在​「​硬​件​」​窗​口​,点​击​「​内​存​」​可​以​查​看​和​修​改​当​前​的​内​存​分​配​。​
    显​示​内​存​分​配​
    图 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 管​理​程​序​间​互​换​

这​部​分​论​述​了​在 KVM 和 Xen 管​理​程​序​间​互​换​。​
Fedora 每​次​只​支​持​一​个​活​跃​管​理​程​序​。​

在​管​理​程​序​间​迁​移​虚​拟​化​客​户​端​

目​前​,没​有​程​序​可​进​行​从​基​于 Xen 客​户​端​向 KVM 的​切​换​或​者​从​基​于 KVM 客​户​端​向 Xen 的​切​换​。​客​户​端​只​能​使​用​创​建​它​们​的​管​理​程​序​类​型​。​

17.2.1. Xen 到 KVM

下​面​的​步​骤​论​述​的​是​从 Xen 管​理​程​序​改​为 KVM 管​理​程​序​。​这​个​步​骤​假​设​安​装​并​启​用​了 kernel-xen 软​件​包​。​
  1. 安​装 KVM 软​件​包​

    如​果​您​还​没​有​安​装 kvm 软​件​包​,则​请​安​装​它​。​
    # yum install kvm
    
  2. 确​定​所​用​内​核​

    可​能​安​装​了 kernel-xen 软​件​包​。​请​使​用 uname 命​令​确​定​正​在​运​行​的​内​核​:
    $ uname -r
    2.6.23.14-107.fc8xen
    
    目​前​在​该​系​统​中​运​行​的​是 "2.6.23.14-107.fc8xen" 内​核​。​如​果​运​行​的​是​默​认 "2.6.23.14-107.fc8xen",请​跳​过​该​分​步​。​
    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_intel 模​块​或​者 kvm_amd 模​块​之​一​。​

17.2.2. KVM 到 Xen

以​下​步​骤​论​述​从 KVM 管​理​程​序​改​为 Xen 管​理​程​序​。​这​个​过​程​假​设​安​装​并​启​用​了 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.fc8xen" 就​是​正​在​系​统​中​运​行​的​内​核​。​这​是​默​认​内​核​。​如​果​内​核​在​结​尾​处​有 xen(例​如 2.6.23.14-107.fc8xen),那​么​是 Xen 内​核​正​在​运​行​,这​样​您​就​可​以​跳​过​下​面​的​子​步​骤​。​
    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(或​者​其​它​代​表 Xen 内​核​的​数​字​):
      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 选​项​及​用​法​如​下​。​
格​式​化​并​创​建​新​映​像​或​者​设​备​
创​建​新​磁​盘​映​像​文​件​名​为 size,格​式​为 format。​
# qemu-img create [-6] [-e] [-b base_image] [-f format] filename [size]
如​果​指​定​了 base_image,则​该​映​像​只​会​记​录​与 base_image 的​不​同​。​在​此​无​须​指​定​任​何​大​小​。​从​来​不​需​要​修​改 base_image 除​非​您​使​用 "commit" monitor 命​令​。​
将​现​有​映​像​转​换​成​另​一​种​格​式​
转​换​选​项​是​将​可​识​别​格​式​转​换​为​另​一​个​映​像​格​式​。​
命​令​格​式​:
# qemu-img convert [-c] [-e] [-f format] filename [-O output_format] output_filename
使​用​格​式 output_format 将​磁​盘​映​像 filename 转​换​为​磁​盘​映​像 output_filename。​可​使​用 "-e" 选​项​对​该​磁​盘​映​像​进​行​加​密​或​者​使​用 "-c" 选​项​对​其​进​行​压​缩​。​
只​有​格​式 "qcow" 支​持​加​密​或​者​压​缩​。​加​密​是​只​读​的​,就​是​说​如​果​重​新​写​入​压​缩​的​字​段​,那​么​会​以​未​压​缩​数​据​形​式​重​新​写​入​。​
加​密​法​是​使​用​非​常​安​全​的 128 位​密​钥​的 AES 格​式​。​使​用​长​密​码​(16 个​字​符​以​上​)获​得​最​大​程​度​的​保​护​。​
当​使​用​可​增​大​的​映​像​格​式​,比​如 qcowcow 时​,映​像​转​换​可​帮​助​您​获​得​较​小​的​映​像​。​在​目​的​映​像​中​可​检​测​并​压​缩​空​白​字​段​。​
获​得​映​像​信​息​
info 参​数​显​示​磁​盘​映​像​信​息​。​info 选​项​的​格​式​如​下​:
# qemu-img info [-f format] filename
给​出​磁​盘​映​像​文​件​名​信​息​。​使​用​它​可​获​得​在​磁​盘​中​保​留​空​间​大​小​,它​可​能​与​显​示​的​大​小​有​所​不​同​。​如​果​在​磁​盘​映​像​中​保​存​有 vm 快​照​,则​此​时​也​会​显​示​。​
支​持​格​式​
映​像​格​式​通​常​是​自​动​获​取​的​。​支​持​以​下​格​式​:
raw
Raw 磁​盘​映​像​格​式​(默​认​)。​这​个​格​式​的​优​点​是​可​以​简​单​、​容​易​地​导​出​到​其​它​模​拟​器​中​。​如​果​您​的​文​件​系​统​支​持​中​断​(例​如​在 Linux 中​的 ext2 或​者 ext3 以​及 Windows 中​的 NTFS),那​么​只​有​写​入​的​字​段​会​占​用​空​间​。​使​用 qemu-img info 了​解 Unix/Linux 中​映​像​或​者 ls -ls 使​用​的​实​际​大​小​。​
qcow2
QEMU 映​像​格​式​,最​万​能​的​格​式​。​使​用​它​可​获​得​较​小​映​像​(如​果​您​的​系​统​不​支​持​中​断​,例​如​在 Windows 中​,它​会​很​有​用​)、​额​外​的 AES 加​密​法​、​zlib 压​缩​以​及​对​多 VM 快​照​的​支​持​。​
qcow
旧​的 QEMU 映​像​格​式​。​只​用​于​与​旧​版​本​兼​容​。​
cow
写​入​映​像​格​式​的​用​户​模​式 Linux 副​本​。​包​含 cow 格​式​的​目​的​只​是​为​了​与​前​面​的​版​本​兼​容​。​它​无​法​在 Windows 中​使​用​。​
vmdk
VMware 3 和 4 兼​容​映​像​格​式​。​
cloop
Linux 压​缩​回​送​映​像​,只​有​在​重​复​使​用​直​接​压​缩​的 CD-ROM 映​像​时​有​用​,比​如​在 Knoppix CD-ROM 中​。​

17.4. KVM 中​的​过​量​使​用​

KVM 管​理​程​序​支​持 CPU 和​内​存​的​过​量​使​用​。​过​量​使​用​是​分​配​超​过​系​统​中​物​理​资​源​的​虚​拟 CPU 或​者​内​存​。​如​果​过​量​使​用 CPU,那​么​未​利​用​的​虚​拟​服​务​器​或​者​桌​面​就​可​运​行​一​些​服​务​器​,继​而​可​以​减​少​费​用​。​

Xen 支​持​

Xen 管​理​程​序​不​支​持 CPU 过​量​使​用​。​在 Xen 管​理​程​序​中​过​量​使​用 CPU 可​导​致​系​统​不​稳​定​并​使​主​机​和​虚​拟​客​户​端​崩​溃​。​
过​量​使​用​内​存​
大​多​数​操​作​系​统​和​应​用​程​序​不​会​总​是​使​用 100% 可​用 RAM。​KVM 可​利​用​这​种​行​为​让​虚​拟​客​户​端​使​用​超​过​物​理​可​用​的​内​存​量​。​
在 KVM 中​,虚​拟​机​是 Linux 进​程​。​KVM 管​理​程​序​中​的​客​户​端​没​有​为​其​分​配​的​物​理 RAM 块​,而​是​作​为​进​程​工​作​。​每​个​进​程​在​其​需​要​时​为​其​分​配​更​多​内​存​。​KVM 使​用​这​个​方​法​在​客​户​端​操​作​系​统​需​要​更​多​或​者​较​少​内​存​时​为​其​进​行​分​配​。​客​户​端​使​用​的​物​理​内​存​只​比​虚​拟​操​作​系​统​要​使​用​的​物​理​内​存​稍​多​一​些​。​
当​物​理​内​存​消​耗​殆​尽​或​者​某​个​进​程​有​时​不​活​跃​时​,Linux 会​将​进​程​内​存​运​动​到 swap 中​。​Swap 通​常​是​在​硬​盘​或​者​固​定​状​态​驱​动​器​中 Linux 用​来​扩​展​虚​拟​内​存​的​分​区​。​Swap 比 RAM 的​速​度​稍​慢​。​
因​为 KVM 虚​拟​机​是 Linux 进​程​,所​以​如​果​虚​拟​客​户​端​处​于​空​闲​状​态​或​者​没​有​大​量​使​用​,则​会​将​该​客​户​端​使​用​的​内​存​放​入 swap 中​。​内​存​使​用​量​可​超​过 swap 和​物​理 RAM 的​总​和​。​如​果​虚​拟​客​户​端​使​用​其​全​部 RAM 则​会​造​成​一​些​问​题​。 如​果​虚​拟​机​没​有​足​够 swap 空​间​,则​会​启​动​将​进​程​切​换​到 swap 中​的 pdflush 进​程​,即​清​除​进​程​。​pdflush 会​杀​死​进​程​来​释​放​内​存​以​便​系​统​不​至​于​崩​溃​。​pdflush 可​能​会​销​毁​导​致​文​件​系​统​出​错​虚​拟​客​户​端​或​者​其​他​系​统​进​程​,并​导​致​虚​拟​客​户​端​无​法​引​导​。​

Warning

如​果​没​有​足​够​的​可​用 swap,客​户​端​操​作​系​统​将​强​制​关​闭​。​这​可​能​导​致​对​客​户​端​无​法​操​作​。​要​避​免​这​种​情​况​出​现​,请​不​要​使​用​超​过​可​用 swap 内​存​的​量​。​
swap 分​区​是​用​来​将​未​使​用​的​内​存​交​换​到​硬​盘​中​以​便​提​高​内​存​性​能​。​默​认 swap 分​区​大​小​是​根​据 RAM 大​小​和​过​量​使​用​比​例​来​计​算​的​。​如​果​您​要​在 KVM 中​过​量​使​用​内​存​,则​建​议​您​为 swap 分​区​分​配​较​大​的​看​见​。​推​荐​的​过​量​使​用​比​例​为 50%(0.5)。​计​算​方​程​式​为​:
(0.5 * RAM) + (过量使用比例 * RAM) = 推荐 swap 大小
红​帽​知​识​库​有​一​篇​论​述​了​安​全​有​效​地​确​定 swap 分​区​大​小​的​文​章​。​
内​存​过​量​使​用​比​例​最​多​可​以​是​系​统​中​物​理 RAM 量​的​十​倍​。​这​只​可​在​某​些​应​用​程​序​负​载​中​使​用​(例​如​:桌​面​虚​拟​化​用​量​在 100% 以​下​)。​设​定​过​量​使​用​比​例​不​是​一​个​固​定​的​方​程​式​,您​必​须​为​您​的​环​境​进​行​测​试​并​优​化​该​比​例​。​
过​量​使​用​的​虚​拟 CPU
KVM 管​理​程​序​支​持​过​量​使​用​的​虚​拟 CPU。​只​要​虚​拟​客​户​端​负​载​限​制​允​许​即​可​过​量​使​用​虚​拟 CPU。​当​过​量​使​用 VCPU 时​要​小​心​,因​为​负​载​接​近 100% 时​可​能​导​致​释​放​请​求​或​者​不​可​用​响​应​次​数​。​
过​量​使​用​虚​拟 CPU 的​最​佳​时​机​是​当​每​个​虚​拟​客​户​端​只​有​一​个 VCPU 的​时​候​。​Linux 调​度​程​序​对​这​种​类​型​的​负​载​非​常​有​效​。​KVM 在​比​例​为 5 VPCU,负​载​不​超​过 100% 时​应​该​可​安​全​支​持​客​户​端​。​过​量​使​用​单​一 VCPU 虚​拟​客​户​端​不​会​有​问​题​。​
您​过​量​使​用​的​对​称​多​进​程​客​户​端​数​量​不​能​超​过​处​理​核​的​物​理​数​量​。​例​如​:有​四​个 VCPU 的​客​户​端​不​能​在​使​用​双​核​处​理​器​的​主​机​中​运​行​。​过​量​使​用​对​称​多​进​程​客​户​端​的​数​量​如​果​超​过​处​理​核​的​物​理​数​量​将​导​致​性​能​严​重​下​降​。​
分​配​客​户​端 VCPU 的​数​量​不​超​过​物​理​核​的​数​量​是​可​以​的​,也​可​以​正​常​工​作​。​例​如​:在​四​核​主​机​中​运​行​有​四​个 VCPU 的​虚​拟​客​户​端​。​未​达​到 100% 负​载​的​客​户​端​在​这​种​设​置​中​可​有​效​工​作​。​

总​是​先​测​试​

在​没​有​进​行​大​规​模​测​试​前​不​要​在​产​品​环​境​中​过​量​使​用​内​存​或​者 CPU。​使​用 100% 内​存​或​者​进​程​资​源​的​应​用​程​序​可​能​在​过​量​使​用​的​环​境​中​变​得​不​稳​定​。​部​署​前​必​须​进​行​测​试​。​

17.5. 修​改 /etc/grub.conf

这​部​分​论​述​了​如​何​安​全​且​正​确​地​修​改​您​的 /etc/grub.conf 文​件​使​其​使​用​虚​拟​化​内​核​。​您​必​须​使​用 xen 内​核​应​用 Xen 监​控​程​序​。​复​制​您​现​有​的 xen 内​核​条​目​,确​定​您​复​制​了​所​有​重​要​的​行​,否​则​您​的​系​统​将​在​引​导​时 panic(initrd 的​长​度​将​为 '0')。​如​果​您​需​要 xen 监​控​程​序​特​定​值​,您​必​须​将​其​附​加​到​您 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 在​从​示​例​中​复​制​前​已​经​进​行​过​手​动​编​辑​,那​么​它​看​起​来​可​能​完​全​不​同​。​
要​在​引​导​时​为​您​的​主​机​系​统​分​配 256MB 内​存​,您​需​要​在​您 grub.conf 文​件​的 xen 行​中​附​加 dom0_mem=256M。​前​面​示​例​的 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 半​虚​拟​化​。​
运​行​以​下​命​令​确​定 CPU 虚​拟​化​扩​展​可​用​:
$ grep -E 'svm|vmx' /proc/cpuinfo
下​面​的​输​出​结​果​包​含 vmx 条​目​,表​明​是​带 Intel VT 扩​展​的 Intel 处​理​器​:
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
系​统​中​的​每​个​超​线​程​、​核​或​者 CPU 可​能​出​现​多​个 "flags:" 内​容​。​
可​能​在 BIOS 中​禁​用​了​虚​拟​化​扩​展​。​如​果​没​有​出​现​扩​展​或​者​全​虚​拟​化​无​法​工​作​,请​参​考 过程 19.1, “在 BIOS 中​启​用​虚​拟​化​扩​展​”。​

17.7. 鉴​别​客​户​端​类​型​及​使​用​

下​面​的​脚​本​可​以​鉴​别​系​统​是​半​虚​拟​客​户​端​、​全​虚​拟​客​户​端​还​是​裸​机​主​机​。​
#!/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 capabilites 命​令​。​

17.8. 生​成​新​的​唯​一 MAC 地​址​

在​有​些​情​况​下​您​需​要​为​客​户​端​生​成​新​的​唯​一 MAC 地​址​。​完​成​本​文​时​还​没​有​可​用​来​生​成​新 MAC 地​址​的​命​令​行​工​具​。​下​面​提​供​的​脚​本​可​以​为​您​的​客​户​端​生​成​新​的 MAC 地​址​。​将​该​脚​本​在​您​的​客​户​端​中​保​存​为 macgen.py。​现​在​您​可​以​在​该​目​录​中​使​用 ./macgen.py 运​行​该​脚​本​生​成​新​的 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
以​上​脚​本​还​可​以​作​为​脚​本​文​件​使​用​,如​下​。​
#!/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. 使​用 chkconfig --list vsftpd 确​定​没​有​启​用 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 为​运​行​级​别 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 持​久​性​

这​部​分​论​述​了​如​何​在​客​户​端​以​及​主​机​(可​以​是​多​路​径​,也​可​以​不​是​)部​署 LUN 持​久​性​。​
在​非​多​路​径​系​统​中​部​署 LUN 持​久​性​
如​果​您​的​系​统​没​有​使​用​多​路​径​,您​可​以​使​用 udev 部​署 LUN 持​久​性​。​在​您​的​系​统​中​部​署 LUN 持​久​性​前​,请​确​定​您​有​正​确​的 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"
使​用​以​上​搜​索​出​的 UUID 条​目​替​换​您​现​有 UUIDdevicename。​该​规​则​应​类​似​如​下​:
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/oramp3dev/mpath/oramp4。​这​些​设​备​将​位​于 /dev/mpath 目​录​。​这​些 LUN 名​称​会​在​重​启​后​保​留​,因​为​在 LUN的 wwid 中​创​建​了​别​名​。​

17.11. 为​客​户​端​禁​用 SMART 磁​盘​监​控​

可​禁​用 SMART 磁​盘​监​控​,因​为​我​们​是​在​虚​拟​磁​盘​中​运​行​,且​物​理​存​储​是​由​主​机​管​理​的​:
/sbin/service smartd stop
/sbin/chkconfig --del smartd

17.12. 克​隆​客​户​端​配​置​文​件​

您​可​以​复​制​现​有​的​配​置​文​件​来​生​成​一​个​全​新​的​客​户​端​。​您​必​须​修​改​客​户​端​配​置​文​件​的 name 参​数​。​此​时​会​在​管​理​程​序​中​出​现​一​个​新​的​唯​一​名​称​,且​可​由​管​理​软​件​查​看​。​您​还​必​须​生​成​一​个​全​新​的 UUID,可​以​使​用 uuidgen 命​令​。​然​后​在 vif 条​目​中​您​必​须​为​每​个​客​户​端​定​义​一​个​唯​一​的 MAC 地​址​(如​果​您​是​从​现​有​客​户​端​中​复​制​客​户​端​配​置​,您​可​以​生​成​一​个​脚​本​来​进​行​处​理​)。​有​关 xen 桥​接​信​息​,如​果​您​将​一​个​现​有​客​户​端​配​置​文​件​移​动​到​一​个​新​的​主​机​中​,您​必​须​更​新 xenbr 条​目​来​与​您​的​本​地​联​网​配​置​匹​配​。​对​于​设​备​条​目​,您​必​须​修​改 'disk=' 部​分​中​的​条​目​使​其​指​向​正​确​的​客​户​端​映​像​。​
您​还​必​须​在​您​的​客​户​端​中​修​改​这​些​系​统​配​置​设​定​。​您​必​须​修​改 /etc/sysconfig/network 文​件​中​的 HOSTNAME 条​目​使​其​与​新​客​户​端​的​主​机​名​匹​配​。​
您​必​须​修​改 /etc/sysconfig/network-scripts/ifcfg-eth0 文​件​中​的 HWADDR 地​址​使​其​与 ifconfig eth0 文​件​的​输​出​匹​配​,同​时​如​果​您​要​使​用​静​态 IP 地​址​,您​还​必​须​修​改 IPADDR 条​目​。​

17.13. 复​制​现​有​客​户​端​及​其​配​置​文​件​

这​部​分​论​述​了​复​制​现​有​配​置​文​件​来​创​建​一​个​新​的​客​户​端​。​您​必​须​了​解​您​客​户​端​配​置​文​件​中​的​关​键​参​数​,并​对​其​进​行​修​改​来​成​功​复​制​客​户​端​。​
name
管​理​程​序​必​须​了​解​您​的​客​户​端​名​称​,并​在​管​理​工​具​中​显​示​。​这​个​条​目​应​该​是​您​的​系​统​特​有​的​。​
uuid
客​户​端​的​特​有​名​称​,使​用 uuidgen 命​令​可​重​新​生​成​一​个​新​的 UUID。​UUID 输​出​示​例​:
$ uuidgen 
a984a14f-4191-4d14-868e-329906b211e5
vif
  • MAC 地​址​ 必​须​为​每​个​客​户​端​定​义​唯​一​的 MAC 地​址​,如​果​使​用​标​准​工​具​这​个​操​作​会​自​动​完​成​。​如​果​您​要​从​现​有​客​户​端​中​复​制​客​户​端​配​置​,您​可​以​使​用​脚​本 第 17.8 节 “生​成​新​的​唯​一 MAC 地​址​”。​
  • 如​果​您​要​将​现​有​客​户​端​配​置​文​件​移​动​或​者​重​复​到​新​的​主​机​中​,您​必​须​确​定​调​整​了 xenbr 条​目​以​符​合​您​的​本​地​联​网​配​置​(您​可​以​使​用 brctl show 命​令​获​得​桥​接​信​息​)。​
  • 设​备​条​目​,请​确​定​您​调​整​了 disk= 部​分​的​条​目​使​其​指​向​正​确​的​客​户​端​映​像​。​
现​在​请​在​您​的​客​户​端​中​调​整​系​统​配​置​设​置​:
/etc/sysconfig/network
HOSTNAME 条​目​改​为​客​户​端​的​新 hostname。​
/etc/sysconfig/network-scripts/ifcfg-eth0
  • ifconfig eth0 输​出​中​的​硬​件​地​址​替​换 HWADDR 地​址​。​
  • 如​果​使​用​静​态 IP 地​址​,请​修​改 IPADDR 条​目​。​

第 18 章 生​成​自​定​义 libvirt 脚​本​

这​部​分​将​为​旨​在​使​用 libvirt 编​写​自​定​义​脚​本​的​程​序​员​和​系​统​管​理​员​提​供​一​些​有​用​信​息​。​
第 17 章 提​示​及​陷​阱​ 建​议​希​望​使​用 libvirt 编​写​新​应​用​程​序​的​程​序​员​阅​读​。​

18.1. 使​用​带 virsh 的 XML 配​置​文​件​

virsh 可​以​处​理 XML 配​置​文​件​。​您​可​在​使​用​特​殊​选​项​编​写​大​量​部​署​脚​本​时​利​用​这​个​优​点​。​您​可​以​添​加​在 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 列​表​以​及​问​题​和 bug 修​复​,请​参​考​您​使​用​版​本​和​硬​件​构​架​的 Fedora《​发​行​注​记​》​。​《​发​行​注​记​》​在​线​文​档​位​于 Fedora 网​站​:http://docs.fedoraproject.org

第 19 章 Troubleshooting

本​章​涵​盖​了 Fedora 虚​拟​化​中​的​一​般​问​题​及​解​决​方​法​。​

19.1. 回​送​设​备​错​误​

如​果​使​用​基​于​文​件​的​客​户​端​映​像​,您​可​能​必​须​要​增​加​配​置​的​回​送​设​备​数​量​。​默​认​配​置​最​多​允​许 8 个​活​跃​的​回​送​设​备​。​如​果​需​要 8 个​以​上​的​基​于​文​件​的​客​户​端​或​者​回​送​设​备​,您​可​以​在 /etc/modprobe.conf 中​调​整​回​送​设​备​数​目​。​请​编​辑 /etc/modprobe.conf 文​件​并​在​其​中​添​加​以​下​行​:
options loop max_loop=64
这​个​示​例​使​用​的​是 64,但​您​可​以​使​用​其​它​数​值​来​设​定​最​大​回​送​设​备​值​。​您​还​可​以​使​用​回​送​设​备​备​份​您​系​统​中​的​客​户​端​。​要​使​用​回​送​设​备​为​半​虚​拟​客​户​端​备​份​客​户​端​,请​使​用 phy: block device 命​令​或​者 tap:aio 命​令​。​要​使​用​回​送​设​备​为​全​虚​拟​系​统​备​份​客​户​端​,请​使​用 phy: device 或​者 file: file 命​令​。​

19.2. 在 BIOS 中​启​用 Intel VT 和 AMD-V 虚​拟​化​硬​件​扩​展​

这​部​分​论​述​了​如​何​识​别​硬​件​虚​拟​化​扩​展​以​及​如​何​在 BIOS 中​启​用​它​们​(如​果​它​们​被​禁​用​了​)。​
可​在 BIOS 中​禁​用 Intel VT 扩​展​。​某​些​笔​记​本​电​脑​零​售​商​已​经​在​其 CPU 中​默​认​禁​用 Intel VT 扩​展​。​
在 BIOS 中​无​法​为​在 Rev 2 套​接​字​兼​容​的 AMD-V 中​禁​用​虚​拟​化​扩​展​。​
有​时​会​在 BIOS 中​禁​用​虚​拟​化​扩​展​,通​常​笔​记​本​电​脑​生​产​商​会​这​样​做​。​启​用​禁​用​的​虚​拟​化​扩​展​的​说​明​请​参​考 第 19.2 节 “在 BIOS 中​启​用 Intel VT 和 AMD-V 虚​拟​化​硬​件​扩​展​”。​
确​定​在 BIOS 中​启​用​了​虚​拟​化​扩​展​。​在 BIOS 中​对 Intel® VT 或​者 AMD-V 的​设​置​通​常​是​在​「​芯​片​」​或​者​「​处​理​器​」​菜​单​中​。​菜​单​的​名​称​可​能​与​本​指​南​略​有​不​同​,虚​拟​化​扩​展​设​置​可​能​位​于​「​安​全​性​设​置​」​或​者​其​它​非​标​准​菜​单​中​。​
过程 19.1. 在 BIOS 中​启​用​虚​拟​化​扩​展​
  1. 重​启​计​算​机​并​打​开​系​统 BIOS 菜​单​。​可​用​使​用 delete 或​者 Alt + F4 组​合​键​完​成​。​
  2. 选​择​「​恢​复​默​认​」​,然​后​选​择​「​保​存 & 退​出​」​。​
  3. 关​闭​机​器​并​断​开​电​源​。​
  4. 打​开​机​器​并​打​开​「​BIOS 设​定​工​具​」​。​打​开​「​处​理​器​」​部​分​并​启​用 Intel® 「​虚​拟​化​技​术​」​ 或​者 AMD-V。​在​某​些​机​器​中​该​值​还​可​称​为​「​虚​拟​化​扩​展​」​。​选​择​「​保​存 & 退​出​」​。​
  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 项​目​的​二​进​制​文​件​和​源​码​,同​时​还​保​留​了​有​关 xen 的​资​料​、​架​构​总​览​、​文​档​和​与 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 半​虚​拟​化​管​理​程​序​以​及​相​关​管​理​工​具​信​息​的​目​录​,其​中​包​括​各​种​示​例​配​置​、​硬​件​特​别​信​息​以​及​当​前 Xen 上​级​用​户​文​档​。​
  • man virsh/usr/share/doc/libvirt-<version-number> — 包​含​了 virsh 虚​拟​机​管​理​工​具​的​子​命​令​和​选​项​,还​包​括​有​关 libvirt 虚​拟​化​库 API 的​综​合​信​息​。​
  • /usr/share/doc/gnome-applet-vm-<version-number> — 监​控​和​管​理​本​地​运​行​的​虚​拟​机​的 GNOME 图​形​化​面​板 applet 的​文​档​。​
  • /usr/share/doc/libvirt-python-<version-number> — 提​供 libvirt 库​的 Python 绑​定​的​细​节​。​libvirt-python 软​件​包​允​许 python 开​发​者​用 libvirt 虚​拟​化​管​理​库​编​写​程​序​。​
  • /usr/share/doc/python-virtinst-<version-number> — 提​供​在​虚​拟​机​中​帮​助​开​始​安​装 Fedora 以​及 Linux 相​关​发​行​本​的 virt-install 命​令​的​文​档​。​
  • /usr/share/doc/virt-manager-<version-number> — 提​供​虚​拟​机​管​理​者​(管​理​虚​拟​机​的​图​形​化​工​具​)的​文​档​。​
裸​机​
dom0
还​可​称​为 主​机​ 或​者​主​机​操​作​系​统​。​
dom0 指​的​是​运​行 管​理​程​序​ 的​红​帽​企​业​版 Linux 主​机​事​件​,它​可​帮​助​客​户​端​操​作​系​统​的​虚​拟​化​。​Dom0 在​物​理​硬​盘​中​运​行​并​管​理​为​其​自​身​和​客​户​端​操​作​系​统​分​配​物​理​硬​件​和​资​源​。​
Domain
domUDomain 都​是​域​。​域​在 管​理​程​序​ 中​运​行​。​域​这​个​词​和 虚​拟​机​ 有​类​似​的​含​义​,且​从​技​术​角​度​来​说​可​以​互​换​。​一​个​域​就​是​一​台​虚​拟​机​。​
domU
domU 是​指​在​主​机​系​统​中​运​行​的​客​户​端​操​作​系​统​(Domain)。​
全​虚​拟​化​
在​全​虚​拟​化​中​可​以​使​用 Xen 和 KVM。​全​虚​拟​化​使​用​处​理​器​的​硬​件​特​性​提​供​对​基​本​物​理​系​统​(裸​机​)的​完​整​提​取​,并​创​建​一​个​可​供​客​户​端​操​作​系​统​运​行​的​新​虚​拟​系​统​。​客​户​端​操​作​系​统​及​所​有​应​用​程​序​象​平​常​一​样​运​行​,意​识​不​到​虚​拟​环​境​的​存​在​。​半​虚​拟​化​需​要​一​个 Linux 操​作​系​统​的​修​订​版​本​。​
全​虚​拟​
请​参​考 全​虚​拟​化​。​
客​户​端​系​统​
也​称​之​为​客​户​端​、​虚​拟​机​或​者 domU
硬​件​虚​拟​机​
请​参​考 全​虚​拟​化​
管​理​程​序​
管​理​程​序​是​用​来​从​操​作​系​统​中​提​取​硬​件​信​息​的​软​件​层​,可​允​许​在​同​一​个​硬​件​中​运​行​多​个​操​作​系​统​。​在​主​机​系​统​中​运​行​的​管​理​程​序​还​允​许​其​它​虚​拟​操​作​系​统​在​主​机​的​硬​件​中​运​行​。​
主​机​
主​机​操​作​系​统​,也​称​为 dom0。​
主​机​操​作​系​统​环​境​为 全​虚​拟​半​虚​拟​ 运​行​虚​拟​化​软​件​。​
I/O
输​入​/输​出​(I/O,读​做​“​ai-ou”​)的​缩​写​。​I/O 可​用​来​描​述​任​意​来​自​计​算​机​或​者​向​计​算​机​传​输​数​据​的​程​序​、​操​作​、​设​备​,也​可​用​来​描​述​来​自​周​边​设​备​或​者​向​周​边​设​备​传​输​数​据​的​程​序​、​操​作​、​设​备​。​每​次​传​输​就​是​从​一​个​设​备​输​出​,然​后​输​入​到​另​一​个​设​备​中​。​类​似​键​盘​、​鼠​标​等​设​备​只​能​用​作​为​输​入​设​备​,而​打​印​机​则​只​能​作​为​输​出​设​备​。​可​擦​写​光​盘​既​是​输​入​设​备​,也​是​输​出​设​备​。​
基​于​内​核​的​虚​拟​机​
KVM(基​于​内​核​的​虚​拟​机​)是​为 AMD64 和 Intel64 硬​件​中​的 Linux 准​备​的 全​虚​拟​化​ 解​决​方​案​。​KVM 是​为​标​准​红​帽​企​业​版 Linux 内​核​构​建​的 Linux 内​核​模​块​,可​运​行​多​个​未​变​性​的​虚​拟​客​户​端 Windows 和 Linux 操​作​系​统​。​KVM 是​使​用 libvirt 虚​拟​化​工​具​(virt-manager 和 virsh)的​管​理​程​序​。​
KVM 是​用​于​管​理​程​序​模​块​本​身​的​一​组​管​理​设​备​、​内​存​和​管​理 API 的 Linux 内​核​模​块​。​这​些​模​块​可​控​制​作​为 Linux 进​程​和​线​程​运​行​的​虚​拟​客​户​端​。​
LUN
逻​辑​单​位​编​号​(LUN)是​为​逻​辑​单​位​(SCSI 协​议​条​目​)分​配​的​号​码​。​
迁​移​
迁​移​是​将​一​个​虚​拟​客​户​端​从​一​个​主​机​移​动​到​另​一​个​主​机​的​进​程​名​称​。​迁​移​可​离​线​(此​时​将​客​户​端​挂​起​然​后​移​动​)或​者​实​时​(不​将​客​户​端​挂​起​就​移​动​)进​行​。​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 内​存​的​客​户​端​在 1Gbit 以​太​网​链​接​中​需​要​几​秒​钟​。​
实​时​迁​移​可​让​客​户​端​继​续​在​源​主​机​中​运​行​并​在​不​停​止​客​户​端​的​情​况​下​移​动​内​存​。​发​送​映​像​后​会​追​踪​所​有​修​改​的​内​存​页​面​并​将​其​发​送​到​目​的​地​。​使​用​更​改​的​页​面​更​新​内​存​。​此​进​程​持​续​进​行​直​至​成​功​复​制​搜​有​页​面​或​者​源​变​化​太​快​以​至​目​的​地​主​机​无​法​复​制​。​如​果​出​现​以​上​两​种​情​况​,则​会​在​源​主​机​中​暂​停​该​客​户​端​并​发​送​记​录​器​(register)和​缓​存​。​在​新​主​机​中​载​入​这​些​记​录​器​,然​后​在​目​的​地​主​机​中​恢​复​该​客​户​端​。​如​果​无​法​合​并​该​客​户​端​(客​户​端​处​于​极​限​负​载​时​出​现​),则​会​暂​停​该​客​户​端​,然​后​启​动​离​线​迁​移​。​
离​线​迁​移​所​需​时​间​依​赖​网​络​带​宽​和​等​待​时​间​以​及​客​户​端​中​的​活​动​。​如​果​该​客​户​端​正​在​使​用​大​量 I/O 或​者 CPU,迁​移​的​耗​时​会​很​长​。​
MAC 地​址​
介​质​访​问​控​制​地​址​是​网​络​接​口​控​制​器​的​硬​件​地​址​。​在​虚​拟​化​环​境​中​必​须​为​虚​拟​网​络​接​口​生​成 MAC 地​址​,且​您​本​地​域​中​的​每​个 MAC 都​应​该​是​唯​一​的​。​
半​虚​拟​化​
半​虚​拟​化​使​用​特​殊​的​内​核​,有​时​是​指 Xen 内​核​或​者 kernel-xen。​半​虚​拟​客​户​端​内​核​同​时​还​使​用​主​机​程​序​库​和​设​备​在​主​机​中​运​行​。​半​虚​拟​安​装​可​对​系​统​中​的​所​有​设​备​有​完​全​访​问​,但​可​使​用​安​全​性​设​置​(SELinux 和​文​件​控​制​)进​行​限​制​。​半​虚​拟​化​比​全​虚​拟​化​速​度​要​快​,可​有​效​用​于​负​载​平​衡​、​provisioning、​安​全​性​以​及​巩​固​性​提​高​。​
因​为​从 Fedora 9 将​不​再​需​要​特​殊​内​核​。​一​旦​将​这​个​路​径​纳​入​主 Linux 树​结​构​,之​后​的​所​有 Linux 版​本​都​将​会​有​启​用​的​或​者​可​用​的​半​虚​拟​化​系​统​。​
半​虚​拟​
请​参​考 半​虚​拟​化​。​
半​虚​拟​驱​动​程​序​
半​虚​拟​的​驱​动​程​序​是​在​全​虚​拟 Linux 客​户​端​中​进​行​操​作​的​设​备​驱​动​程​序​。​这​些​驱​动​程​序​为​全​虚​拟​客​户​端​极​大​提​高​了​网​络​和​块​设​备 I/O 的​性​能​。​
安​全​性​提​高 Linux
安​全​性​提​高 Linux 的​缩​写​。​SELinux 使​用 Linux 内​核​中​的 Linux 安​全​性​模​块​(LSM)提​供​安​全​性​策​略​所​需​的​最​小​特​权​范​围​。​
全​局​唯​一​识​别​符​
全​局​唯​一​识​别​符​(UUID)是​对​分​布​计​算​环​境​中​的​设​备​、​系​统​和​某​些​软​件​对​象​的​标​准​化​计​数​方​法​。​虚​拟​化​中​的 UUID 类​型​包​括​:ext2ext3 文​件​系​统​识​别​符​、​RAID 设​备​识​别​符​、​iSCSI 和 LUN 设​备​识​别​符​、​MAC 地​址​以​及​虚​拟​机​识​别​符​。​
Virtualization
虚​拟​化​是​一​个​用​于​运​行​软​件​的​泛​泛​计​算​术​语​。​通​常​操​作​系​统​与​系​统​中​的​其​他​程​序​共​存​且​独​立​于​其​他​程​序​。​大​多​数​目​前​采​用​的​虚​拟​化​使​用​管​理​程​序​。​管​理​程​序​通​过​为​客​户​端​操​作​系​统​提​供​虚​拟​硬​件​,让​多​个​操​作​系​统​可​在​同​一​物​理​系​统​中​运​行​。​虚​拟​化​操​作​系​统​的​方​法​有​很​多​:
  • 硬​件​辅​助​虚​拟​化​是​用​于 Xen 和 KVM 全​虚​拟​化​的​技​术​(定​义​:全​虚​拟​化​
  • 半​虚​拟​化​是 Xen 用​来​运​行 Linux 客​户​端​的​技​术​(定​义​:半​虚​拟​化​
  • 软​件​虚​拟​化​或​者​模​拟​。​软​件​虚​拟​化​使​用​二​进​制​转​换​和​其​它​模​拟​技​术​运​行​未​修​改​的​操​作​系​统​。​软​件​虚​拟​化​比​硬​件​辅​助​虚​拟​化​或​者​半​虚​拟​化​要​慢​很​多​。​
虚​拟 CPU
运​行​红​帽​虚​拟​化​的​系​统​有​很​多​虚​拟 CPU 或​者 VCPU。​VCPU 的​数​目​是​限​定​的​,并​代​表​可​分​配​给​客​户​端​虚​拟​机​的 VCPU 总​数​。​
虚​拟​机​
虚​拟​机​是​物​理​机​器​或​者​编​程​语​言​的​软​件​实​施​(例​如​:Java 运​行​时​环​境​或​者 LISP)。​虚​拟​化​环​境​中​的​虚​拟​机​上​下​文​就​是​在​虚​拟​硬​盘​中​运​行​的​操​作​系​统​。​
Xen
红​帽​企​业​版 Linux 支​持 Xen 管​理​程​序​和 KVM 管​理​程​序​(请​参​考 基​于​内​核​的​虚​拟​机​)。​两​个​管​理​程​序​有​不​同​的​构​架​和​开​发​方​法​。​Xen 管​理​程​序​在​作​为​主​机​管​理​系​统​资​源​和​虚​拟​化 API 的​红​帽​企​业​版 Linux 操​作​系​统​中​使​用​。​主​机​有​时​指​的​是 dom0 或​者 Domain0。​