最近公司准备上一套基于openstack的虚拟桌面系统,作为该项目的负责人,觉得有必要自己实践一下,该系统的搭建。最基础的就是需要了解基于linux的kvm的实践。

一、基础软件包准备

系统是采用pxe安装的,下面将pxe的ks.cfg文档公布出来,供大家参考,由于是实验,所以安装了图形界面,方便操作和查找问题。

  1. #platform=x86, AMD64, 或 Intel EM64T
  2. #skip input subscribe number
  3. key --skip
  4. #version=DEVEL
  5. # Firewall configuration
  6. firewall --disabled
  7. # Install OS instead of upgrade
  8. install
  9. # Use network installation
  10. url --url="http://10.0.0.100:8080/pxe/centos"
  11. # Root password
  12. rootpw --iscrypted $1$bIZz5.0G$okfXTZMuvK32r3gSIY6Rv/
  13. user --name="os" --password="os123"
  14. # System authorization information
  15. auth  --useshadow  --passalgo=sha512
  16. # Use graphical install
  17. graphical
  18. firstboot --disable
  19. # System keyboard
  20. keyboard us
  21. # System language
  22. lang zh_CN.UTF-8
  23. # SELinux configuration
  24. selinux --disabled
  25. # Installation logging level
  26. logging --level=info
  27. # Partition clearing information
  28. clearpart --all --initlabel
  29. # Reboot after installation
  30. reboot
  31. # Network information
  32. network --onboot no --device eth0 --bootproto dhcp --noipv6
  33. # Disk partitioning information
  34. part /boot --asprimary --bytes-per-inode=4096 --fstype="ext4" --size=200
  35. part swap --asprimary --bytes-per-inode=4096 --fstype="swap" --size=512
  36. #part / --asprimary --bytes-per-inode=4096 --fstype="ext4" --grow --size=1
  37. #vol information
  38. part pv.100 --size=20480 --grow
  39. volgroup myvg pv.100
  40. logvol / --fstype="ext4" --name=root --vgname=myvg --size=5120 --grow
  41. logvol /usr --fstype="ext4" --name=usr --vgname=myvg --size=5120 --grow
  42. logvol /home --fstype="ext4" --name=home --vgname=myvg --size=5120 --grow
  43. # System timezone
  44. timezone  Asia/Shanghai
  45. # System bootloader configuration
  46. bootloader --location=mbr
  47. # Partition clearing information
  48. clearpart --all
  49. %packages
  50. ####### CentOS mini desktop packages ############
  51. @base
  52. @basic-desktop
  53. @chinese-support
  54. @desktop-debugging
  55. @desktop-platform
  56. @directory-client
  57. @fonts
  58. @input-methods
  59. @internet-browser
  60. @java-platform
  61. @legacy-x
  62. @network-file-system-client
  63. @remote-desktop-clients
  64. @server-platform
  65. @x11
  66. ######## graphic admin tools #############
  67. @graphical-admin-tools
  68. audit-viewer
  69. firstaidkit-gui
  70. policycoreutils-gui
  71. sabayon
  72. setroubleshoot
  73. #system-config-kickstart
  74. system-config-lvm
  75. #wireshark-gnome
  76. ############ virtualization tools ########
  77. @virtualization
  78. @virtualization-client
  79. @virtualization-platform
  80. @virtualization-tools
  81. fence-virtd-libvirt
  82. fence-virtd-multicast
  83. fence-virtd-serial
  84. libguestfs-java
  85. libguestfs-tools
  86. libvirt-cim
  87. libvirt-java
  88. libvirt-qmf
  89. libvirt-snmp
  90. perl-Sys-Virt
  91. #qemu-guest-agent
  92. qemu-kvm-tools
  93. virt-v2v
  94. %end


大家如果不是采用pxe安装,请参考后半部分的virtualization tools包列表进行手工安装。

二、虚拟机创建

系统安装完成后,在菜单中,会有虚拟机管理的菜单,按照步骤提示,可方便的完成虚拟机创建

虚拟机测试可以使用cirros系统,该系统非常小,运行起来非常快(​​下载​​)

CentOS的KVM实践(虚拟机创建、网桥配置、Spice)_javaCentOS的KVM实践(虚拟机创建、网桥配置、Spice)_desktop_02CentOS的KVM实践(虚拟机创建、网桥配置、Spice)_desktop_03CentOS的KVM实践(虚拟机创建、网桥配置、Spice)_linux_04CentOS的KVM实践(虚拟机创建、网桥配置、Spice)_desktop_05CentOS的KVM实践(虚拟机创建、网桥配置、Spice)_desktop_06CentOS的KVM实践(虚拟机创建、网桥配置、Spice)_desktop_07

如果是winxp系统,系统安装完成后,会提示你又两个驱动无法安装,分别为显卡和网卡

  1. http://alt.fedoraproject.org/pub/alt/virtio-win/latest   #网卡
  2. http://www.spice-space.org/download/windows/qxl/         #显卡,在安装spice后,需要安装qxl的显卡驱动

三、网桥配置

首先要理解NAT和网桥的概念,网上文章很多了,这里就不多说了,下面只说下网桥配置方面的东西。

1、增加网桥

需要在网络配置文件中,增加一个网桥的配置

  1. nano /etc/sysconfig/network-scripts/ifcfg-br0

文件内容如下:

  1. DEVICE="br0"          #网桥名称
  2. TYPE="Bridge"         #类型
  3. ONBOOT="yes"
  4. BOOTPROTO=static
  5. IPADDR=192.168.1.21   #网桥地址,该地址即为宿主机地址
  6. PREFIX=24
  7. GATEWAY=192.168.1.1
  8. DNS1=192.168.1.1
  9. DELAY=0


2、修改网卡配置

  1. nano /etc/sysconfig/network-scripts/ifcfg-eth0


在网卡配置中修改

  1. DEVICE="eth0"
  2. <span style="color:#ff0000;">BOOTPROTO=none          #修改为none  下面的ip地址都可以不进行配置</span>
  3. IPADDR=192.168.1.11
  4. PREFIX=24
  5. GATEWAY=192.168.1.1
  6. DNS1=192.168.1.1
  7. DELAY=0
  8. IPV6INIT="no"
  9. NM_CONTROLLED="yes"
  10. ONBOOT=yes
  11. TYPE="Ethernet"
  12. <span style="color:#ff6666;">BRIDGE="br0"            #增加网卡对网桥的识别</span>
  13. UUID="0f50002a-498c-477c-8e7e-122575acc077"
  14. DEFROUTE=yes
  15. IPV4_FAILURE_FATAL=yes
  16. NAME="System eth0"
  17. HWADDR=00:23:54:CB:DA:56
  18. MTU=1500
  19. PEERDNS=yes
  20. PEERROUTES=yes
  21. LAST_CONNECT=1421975568


3、禁用网络管理器

  1. # chkconfig NetworkManager off
  2. # service  NetworkManager stop


4、重启网络

  1. # service network restart


5、修改虚拟机网络配置

网桥的配置就基本完成,此时需要在虚拟机的网络配置处修改配置。

CentOS的KVM实践(虚拟机创建、网桥配置、Spice)_linux_08


具体网络配置如下

CentOS的KVM实践(虚拟机创建、网桥配置、Spice)_desktop_09


设置完成后,宿主机的地址为网桥的地址,虚拟机的地址为自动获取,可以在虚拟机中进行修改。经实验,外网和虚拟机之间的通信、虚拟机与宿主机之间的通信均正常。


四、Spice设置

spice是一种远程桌面协议,其支持的桌面色彩和周边设备的能力远远大于vnc,更适合做云桌面的使用。

1、安装spice服务器端

  1. #yum -y install spice-server
  2. #yum -y install spice-protocol xorg-x11-drv-qxl


2、更改虚拟机显示设置

由于默认设置的问题,我们需要把原有的显示设置删掉,重新添加一个,并选选择在所有端口监听,才能让大家在非宿主机上链接到spice

CentOS的KVM实践(虚拟机创建、网桥配置、Spice)_desktop_10CentOS的KVM实践(虚拟机创建、网桥配置、Spice)_desktop_11


CentOS的KVM实践(虚拟机创建、网桥配置、Spice)_desktop_12


3、客户端安装、使用

linux下的客户端,可以使用以下命令安装

  1. #yum -y install spice-client


连接

  1. # /usr/libexec/spicec -h 192.168.0.13 -p 5930 -w password


windows客户端,请下载virt-viewer Windows installer   (​​下载​​)

直接运行,输入地址即可。

CentOS的KVM实践(虚拟机创建、网桥配置、Spice)_java_13