分享

虚拟化技术之KVM研究

 Evilpot 2014-05-09

一、在正式开始进行虚拟化之前首先要做的是检查当前主机是否可以被虚拟化。

命令行键入:

# egrep '(vmx|smv)' --color=always /proc/cpuinfo    

或者

# cat /proc/cpuinfo |grep (vmx|smv)

 

看是否有相关的物理硬件支持。

如果服务器对相关物理硬件支持的话,则可以安装KVM进行虚拟化。

 

二、安装KVM

推荐使用yum安装。

1.       安装KVM模块

# yum install kvm    qemu-kvm.x86_64

2.       安装KVM调试工具(可选)

# yum install qemu-kvm-tools.x86_64

3.        安装python组件,用来记录创建vm时的xml文件。

# yum install python-virtinst.noarch

4.       安装qemu组件,使用qemu命令来创建磁盘,启动虚拟机等

# yum install qemu-img

5.       安装网络支持工具

# yum install bridge-utils

6.       安装虚拟机管理工具,使用virsh来管理虚拟机

# yum install libvirt

7.       安装图形界面管理虚拟机(远程的被管理主机,可以不安装,可选)

# yum install virt-manager

三、安装完成后检查KVM模块是否安装完成。

# lsmod |grep kvm

看是否会显示两个模块:类似

kvm_intel              85256  0

kvm                  225824  2  ksm,kvm_intel

 

四、检查物理主机虚拟化完成情况
# virsh list

正确安装后会有以下显示:

 
 

 

五、宿主服务器网络配置

为了能使虚拟机正确进行网络连接,宿主服务器应当开启桥接。

桥接模式需要手动配置。

下面是我的配置方式:

1.       首先创建bridge的配置文件/etc/sysconfig/network-script/ifcfg-br0

并写入:

DEVICE=br0

BOOTPROTO=static

IPADDR=192.168.1.99

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

ONBOOT=yes

TYPE=Bridge

2.       修改/etc/sysconfig/network-script/ifcfg-eth0:

DEVICE=eth0

BOOTPROTO=static

HWADDR=00:25:90:04:c5:be

ONBOOT=yes

#NETMASK=255.255.255.0             //注释掉

#IPADDR=192.168.1.99

#GATEWAY=192.168.1.1

TYPE=Ethernet

BRIDGE=br0                                           //增加使用桥接字段

(正式服务器上使用了绑定网卡,这个的配置还需要研究一下)

3.       配置完毕后重启网络。没有错误的话进行下一步。

4.       查看网络配置:

 
 

六、安装虚拟机

接下来使用文本模式安装虚拟机。使用virt-install命令进行安装。

下面是一些常用参数:

         -- name = vm1                             # 虚拟机名字

         -- vncport = 6900                        # VNC监听端口 5900 and 65535

         -- ram = 20480                             # 虚拟机内存大小

         -- vcpus = 8                                  # 虚拟机使用的CPU个数

         -- disk file = FILE_PATH             # 虚拟机文件存放路径,

# such as /usr/local/virtual_machine/vm/1/vm1.img

              ,file-size = 20                    # 虚拟硬盘大小,单位G

         -- bridge = br0                              # 虚拟机网卡接口

         -- os-variant = rhel6                  # 操作系统类型

         -- cdrom = //***.iso                   # 虚拟机安装镜像文件

         -- vnc                                              # 使用VNC展示图形化界面

 
 

执行完成后,检查6900端口是否被监听。

# netstat –anpl | grep 6900

 

修改/etc/libvirt/libvirtd.conflisten_addr参数,设置监听地址,

修改/etc/libvirt/qemu.confvnc_listen参数,设置vnc监听地址。

然后重启libvirt/etc/init.d/libvirt-bin restart

 

七、安装vncserver

1. yum安装vncserver

# yum install vncserver

2. Vncserver配置文件路径:/root/.vnc/下。

修改/root/.vnc/ xstartup将该文件中,

unset SESSION_MANAGER

exec /etc/X11/xinit/xinitrc两行的注释去掉。同时,将文件最后的twm & 修改为gnome-session gnome &开启gnome

 

PS:第一次启动vncserver时会要求输入密码。

 

3. 开启vncserver服务

# vncserver :桌面号

桌面号与监听端口的关系为:若vnc监听端口为5900,桌面号为1,则vncserver的监听端口为5901.

 

若想关闭vncserver的话,命令为:# vncserver –kill :桌面号。如要关闭桌面号为1vnc连接,则执行# vncserver –kill :1

 

 

八、vncserver高级配置

1. Vncserver配置开机启动

/etc/init.d/vncserver start写入/etc/rc.local/文件。

2. 编辑/etc/sysconfig/vncserver

VNCSERVERS="1:root" 

VNCSERVERARGS[1]="-geometry 1024x768"   

ARGS 中修改"1024x768"来适应自己的X桌面实际参数配置。可以在这里添加任何其他VNC服务器参数配置。在VNCSERVERS中修改 root 为你希望运行VNC桌面的用户。VNCSERVERS中的1表示VNC以桌面1运行。

保存后,启动vncserver

 

使用VNC客户端,连接虚拟机。将会看到安装系统界面。

形如:

 
 

 

九、使用virsh命令操作虚拟机

1. 列出已经运行的虚拟机:virsh list

2. 启动刚安装的虚拟机:virsh start vm1

3. 关闭虚拟机:virsh shutdown vm1

4. 强制关闭虚拟机:virsh destroy vm1

5. 设置虚拟机为自启动:virsh autostart vm1

6. 删除虚拟机:virsh undefine vm1

7. 暂停虚拟机:virsh suspend vm1

8. 从暂停状态恢复虚拟机:virsh resume vm1

 

VNC开启后CPU使用过高的问题。

是因为在使用virt-install安装虚拟机时,没有加入—accelerate参数。这个参数加入后,虚拟机在使用VNC进行连接时,将会自动分配所使用的CPU

 

安装完虚拟机后,使用VNC为虚拟机安装系统。

系统安装完成后,要为虚拟机配置网络环境。虚拟机的网络环境配置类似于我们的宿主机,但是要注意的是,在一台宿主机存在多台虚拟机时,MAC地址一定要唯一。也就是说,不同的虚拟机之间唯一需要注意的就是MAC地址。

虚拟机的网络配置完成后,重启网络。

上面就完成了在一台宿主机上搭建配置虚拟机的全部过程。

 

 

接下来的任务是,完成对已创建的虚拟机的克隆,并使用克隆的镜像创建新的虚拟机。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多