设为首页 收藏本站
查看: 1181|回复: 0

[经验分享] linux 虚拟化实战 --kvm (基于内核的虚拟机)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-8 12:51:54 | 显示全部楼层 |阅读模式
  

环境:

 
CentOS5.5  桌面环境:CentOS5.5(可以为Ubuntu桌面)

2安装 KVM

CentOS 5.2 KVM主机:
运行
system-config-securitylevel
并且开启SELinux(如果你的SELinux被禁用,virt-install将不会正常工作)。
然后检查CPU是否支持硬件虚拟化-运行命令
egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo
应该会显示如下信息:
[iyunv@server1 ~]# egrep ’(vmx|svm)’ –color=always /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
[iyunv@server1 ~]#

如果什么也没有显示的话,就说明你的处理器不支持硬件虚拟化技术,下面的内容就不适合你了。
下面我们为软件包导入GPG key
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY*
然后安装KVM和virtinst(一个创建虚拟机的工具),我们运行
yum install kvm kmod-kvm qemu libvirt python-virtinst
然后重新启动系统:
reboot
启动过后, KVM的内核模块将会被加载:
lsmod | grep kvm
[iyunv@server1 ~]# lsmod | grep kvm
kvm_amd                50452  0
kvm                   109264  1 kvm_amd
[iyunv@server1 ~]#

(这个输出结果是一台拥有AMD-V处理器的系统,如果你的电脑使用的是Intel VT的CPU,将会显示类似kvm_intel字符)
使用下列命令检查KVM是否成功安装
virsh -c qemu:///system list
将会显示如下结果:
[iyunv@server1 ~]# virsh -c qemu:///system list
Id Name                 State
———————————-

[iyunv@server1 ~]#
 
如果在这里显示的是一个错误的信息,说明有些东西出现了问题。
下面我们需要在我们的服务器上设置一个网桥,就可以使我们的虚拟机从其他主机中读取数据。
要做到这一点,我们安装bridge-utils工具。。。。。。
yum install bridge-utils
… 并且配置一个网桥从/etc/sysconfig/network-scripts/ifcfg-eth0参考BOOTPROTO, BROADCAST, IPADDR, NETMASK和NETWORK等值来创建文件/etc/sysconfig/network-scripts/ifcfg-br0 :
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.100
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
修改/etc/sysconfig/network-scripts/ifcfg-eth0 as follows (取消注释BOOTPROTOBROADCASTIPADDRNETMASK, 和NETWORK 最后添加 BRIDGE=br0):
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
DEVICE=eth0
#BOOTPROTO=static
#BROADCAST=192.168.0.255
HWADDR=00:10:A7:05:AF:EB
#IPADDR=192.168.0.100
#NETMASK=255.255.255.0
#NETWORK=192.168.0.0
ONBOOT=yes
BRIDGE=br0
重新启动网络…
/etc/init.d/network restart
… 运行
ifconfig
现在应该显示网桥(br0):
[iyunv@server1 ~]# ifconfig
br0       Link encap:Ethernet  HWaddr 00:10:A7:05:AF:EB
inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
inet6 addr: fe80::210:a7ff:fe05:afeb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:17 errors:0 dropped:0 overruns:0 frame:0
TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1160 (1.1 KiB)  TX bytes:14875 (14.5 KiB)

eth0      Link encap:Ethernet  HWaddr 00:10:A7:05:AF:EB
inet6 addr: fe80::210:a7ff:fe05:afeb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:13662 errors:7 dropped:160 overruns:4 frame:0
TX packets:11646 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15144608 (14.4 MiB)  TX bytes:1379942 (1.3 MiB)
Interrupt:74 Base address:0xcc00

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:38 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4308 (4.2 KiB)  TX bytes:4308 (4.2 KiB)

virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b)  TX bytes:9987 (9.7 KiB)

[iyunv@server1 ~]#
 

3 创建虚拟机:(kvm ,img based)

 
首先wget 下载你想要安装的镜像
下载下来后,执行安装,利用virt-install 指令:
 

virt-install qemu:///system --name CentOS --ram 512 --cpuset=1,3,5 and 7 --accelerate
--disk path=/docin/VirtualCentOS/CentOS.img,size=50
--network bridge:br0
--cdrom /home/houzhaowei/centosISO/CentOS-5.5-x86_64-bin-DVD-1of2.iso --vnc
   
其中都有哪些指令 输入man virt-install 可查看,说的非常清楚。
  如果用光盘安装, 把 --cdrom 指向cdrom 即可。
  
输出结果如下所示:
[iyunv@server1 ~]# virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant generic26 –accelerate –network=bridge:br0 –hvm
Starting install…
Creating storage file…  100% |=========================|  50 GB    00:00
Creating domain…                                                 0 B 00:00
Domain installation still in progress.  You can reconnect to
the console to complete the installation process.
[iyunv@server1 ~]#

表示镜像和域创建完毕,可以准备安装。
此时问题就出来了:本机linux 没有图形界面,该怎么进行安装?解决方案是:用另一台图形化机器的virt-manager 来连接客户机的kvm。
 

4 在你的CentOS Desktop上安装virt-manager
  
  如果你安装了qemu 和libvirt 则执行:
  virt-manager
  会出现 DSC0000.jpg
  选择文件->新建连接
DSC0001.png
  选择qemu 并在主机名上输入你想连接主机的ip。
  连接上后会发现有一个主机在running 然后在上面点右键选择“打开”
DSC0002.png
  
  会看到控制台:
DSC0003.png
  会出现安装界面(由于我的已经安装完了,所以进去的直接是系统界面。)
  从概况  和 硬件  选项中可以看到当前虚拟机的信息。
  okay 图形出来了 ,接着就按照安装CentOS的图形界面提示进行安装吧(和真实机安装一样。)
  

5 管理KVM客户机

CentOS 5.5 KVM 主机:
可以通过 virsh命令管理KVM客户机,”virtual shell”。连接到virtual shell,运行
virsh –connect qemu:///system
下面就是virtual shell的显示界面:
[iyunv@server1 ~]# virsh –connect qemu:///system
Welcome to virsh, the virtualization interactive terminal.

Type:  ’help’ for help with commands
‘quit’ to quit

virsh #
现在你可以在virtual shell中输入命令来管理你的客户机,运行:
help
获得更多的命令:
virsh # help
  
会出现命令列表,很通俗易懂。


virsh #
list
显示所有正在运行的客户机;
list –all
显示所有客户机,正在运行的和没有运行的:
virsh # list –all
Id Name                 State
———————————-
2 CentOS               running

virsh #
如果你修改了一个客户机的xml文件(位于/etc/libvirt/qemu/ 目录),你必须重新定义客户机:
define /etc/libvirt/qemu/vm10.xml
请注意,无论你何时在/etc/libvirt/qemu/ 中修改了客户机的XML文件,你必须重新运行define 命令!
启动和停止客户机,运行:
start CentOS
停止一个客户机,运行
shutdown CentOS
立即中断一个客户机(类似直接关电源),运行
destroy CentOS
挂起一个客户机:
suspend CentOS
恢复客户机:
resume CentOS
 
编辑客户机:
edit CentOS  会出席那关于该虚拟机配置的xml 文件,在里面可以修改所有属性,cpu,内存等。。。 保存后重启虚拟机即可。
  
这些都是最重要的命令.
输入
quit
退出virtual shell.
 
  
  

6 复制虚拟机
  
  此时产生了个新需求,需要在多台服务器上搭建虚拟的Centos 怎么办?都重新安装一遍?
  答案是:不用。
  
  把本机器已经安装好的CentOS.img copy 到另一台服务器,当然这台机器上必须已经安装好了kvm  qemu和libvirt。
  
  然后在新服务器上执行:
  
  

virt-install qemu:///system --name CentOS1 --ram 4096 --cpuset=1,3,5 and 7 --accelerate
--disk path=/docin/VirtualCentOS/CentOS.img --import
--network bridge:br0
   注意 ,这里使用了 --import 
  具体描述 可以用 virt-install -h 来查看 --import 的作用。
  
  ps: 有一个virt-clone 指令,貌似只能本机clone。没详细研究过。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-161884-1-1.html 上篇帖子: KVM(Hostigation)用VNC安装Debian及环境部署 下篇帖子: KVM虚拟化产品-iVCS介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表