设为首页 收藏本站
查看: 1300|回复: 1

[经验分享] KVM 安装配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-8 09:10:23 | 显示全部楼层 |阅读模式
实验环境
系统版本:CentOS release 6.8 (Final)
系统位数:64位
KVM网络:采用NAT(由于服务器一般托管在IDC机房,如果采用桥接那么需要更多的公网IP)
宿主机ip:192.168.0.140
注意:CentOS6.8是安装在VMware中的一台虚拟机,使用的网络方式为桥接。

虚拟化介绍
1.通过虚拟化工具,将真实的硬件资源模拟划分成更少的虚拟硬件资源。
2.虚拟化分类
  软件:所有硬件设备都可以通过软件模拟出来,例如:qemu
  硬件:通过VMM(虚拟机监视器)将硬件分配和管理。例如:Xen、Vmware [ESX | workstation]、kvm、virtualbox
注意:VMM与hypervisor是一个东西

半虚拟化/全虚拟化
1.半虚拟化(para virtualization):半虚拟化宿主机(虚拟机承载主机/母机)和客户机(虚拟机/子机)都需要修改操作系统的内核,客户机知道宿主机的存在,两者之间需要协同合作,优化I/O协议使客户机操作系统可以和VMM紧密结合,近似于物理机的速度,因此性能高于全虚拟化。例如:Xen
2.全虚拟化(full virtualization):全虚拟化为客户机提供完整的虚拟硬件资源,宿主机与客户机都不需要修改系统内核,也不需要知道宿主机的存在。例如:KVM、VMware

KVM简介
1.KVM全称kernel virtual machine 是针对包含虚拟化扩展(Intel VT或AMD-V)的x86硬件上的完全原生的虚拟化解决方案。
2.是以色列Qumranet开发,基于Linux内核。2008年9月4日被RedHat收购。
3.rhel5/centos5默认是Xen,rhel6/centos6之后版本KVM代替Xen。

KVM架构
KVM驱动:作为Linux内核的一个模块,主要负责虚拟机的创建、虚拟内存分配、VCPU寄存器的读写以及运行。
Qemu:模拟虚拟机用户空间组件。
Libvirt/virsh:解决qemu效率不高,RedHat为KVM开发的辅助工具,例如virsh、libguestfs.
Virt-manager:是一套由Python开发编写的虚拟机管理图形界面,用户可以通过它操作不同虚拟机,利用libvirt的API实现。

一、准备工作
1.KVM服务器需要CPU支持虚拟化技术
首先确定CPU是否支持虚拟化,其次在bios中开启虚拟化支持。
我这里使用VMware做实验,也可以说成虚拟化嵌套,在虚拟机设置中勾选虚拟化相关选项。

2.查看是否支持虚拟化
[iyunv@localhost ~]#  egrep '(vmx|svm)' --color=always /proc/cpuinfo
注意:如果输出有信息表示支持虚拟化,否则就不支持虚拟化,无法安装KVM。

3.查看系统内核
[iyunv@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
注意: 内核版本在2.6.20以下需要升级。

4.关闭SElinux
[iyunv@localhost ~]# vim  /etc/selinux/config
修改以下内容:
SELINUX=permissive
[iyunv@localhost ~]# setenforce 0
5.关闭iptables服务(临时关闭)
[iyunv@localhost ~]# service iptables stop

二、安装KVM服务

1.安装软件
[iyunv@localhost ~]# yum install -y kvm virt-*  libvirt  bridge-utils qemu-img  libvirt-client

2.查看必须软件包是否安装完整
[iyunv@localhost ~]# rpm  -qa |grep -E 'qemu|libvirt|virt'
libvirt-client #libvirt的客户端,宿主机关机通知虚拟机关机,避免强制关机造成数据丢失。
gpxe-roms-qemu #虚拟机IPXE启动固件,支持虚拟机的网络启动
libvirt-python #为python提供API
python-virtinst #一套python虚拟机安装工具
qemu-kvm  #KVM在用户空间运行程序
virt-manager  #基于libvirt的图形化虚拟机管理软件
libvirt  #用于管理虚拟机,提供一套虚拟机管理API
virt-viewer  #显示虚拟机的控制台console
virt-top #类似top,查看资源使用情况
virt-what #虚拟机内部执行,查看虚拟机的虚拟化平台
qemu-img  #用于操作虚拟机硬盘景象的创建、查看、格式转化
注意:如果没有安装完整,自行yum安装

3.查看kvm模块
[iyunv@localhost ~]#  lsmod |grep kvm
kvm_intel              55464  3
kvm                   345038  1 kvm_intel
注意:如果没有模块重启系统再查看,重启之后记得关闭iptables服务。

4.启动服务
[iyunv@localhost ~]# /etc/init.d/libvirtd start
[iyunv@localhost ~]# /etc/init.d/messagebus start

5.查看虚拟工具版本
[iyunv@localhost ~]# virsh --version
0.10.2
[iyunv@localhost ~]# virt-install --version
0.600.0
[iyunv@localhost ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
[iyunv@localhost ~]# qemu-kvm --version
QEMU PC emulator version 0.12.1 (qemu-kvm-0.12.1.2-2.491.el6_8.3), Copyright (c) 2003-2008 Fabrice Bellard

6.查看网络
[iyunv@localhost ~]# brctl show
bridge name        bridge id                STP enabled        interfaces
virbr0                8000.52540055fa8b        yes                virbr0-nic
                                                        vnet0

7.安装VNC-server(用于图形化操作安装系统)
[iyunv@localhost ~]# yum -y install tigervnc-server

8.设置VNC登录密码
[iyunv@localhost ~]# vncpasswd
Password:12345.a
Verify:12345.a

9.修改配置文件(否则无法链接VNC)
[iyunv@localhost ~]# vim  /etc/libvirt/qemu.conf
修改以下内容:
取消改行注释 vnc_listen = "0.0.0.0"

10.重启服务
[iyunv@localhost ~]# /etc/init.d/libvirtd restart
[iyunv@localhost ~]# /etc/init.d/messagebus restart

三、创建虚拟机(制作系统镜像)
为什么制作系统镜像?宿主机一般会安装多个虚拟机系统,如果每个虚拟机系统都从头到尾的安装一次,会耗费大部分时间并且很繁琐。所以我们制作一个系统镜像,那么下次在创建虚拟机系统的时候直接复制磁盘,修改虚拟机配置文件,挂载虚拟机运行,修改IP就是一台新的虚拟机系统。
1.创建目录
[iyunv@localhost ~]# mkdir -p /data/{iso,pool,back}
iso:目录用于存放系统iso镜像
pool:用于存放虚拟机
back:用于存放制作虚拟机系统镜像

2.上传系统镜像
通过Xftp或者使用rz命令(需要安装lrzsz包)上传系统镜像至/data/iso目录里。

3.安装VNC
在本地PC电脑上面安装“VNC Viewer 4”客户端。用于图形化安装系统(有Xmanager图形安装会出现鼠标或键盘无法使用的情况)

4.创建系统磁盘
[iyunv@localhost ~]# cd  /data/back/
[iyunv@localhost back]# qemu-img create windows_2k3 -f qcow2  -opreallocation=metadata   30G

5.创建虚拟机(bus=ide,否则找到不磁盘)
[iyunv@localhost back]# virt-install -n windows2k3 -r 1024 -vcpus=1  -c /data/iso/windows_server_2003.iso --disk path=/data/back/windows_2k3,format=qcow2,size=30,bus=ide  --hvm --os-type=windows  --vnc --vncport 5901 --network network=default --force --autostart
说明:
-n:定义虚拟机在名称
-r:设置分配1G内存大小
-vcpus:设置分配1个CPU
-c:指定系统安装镜像位置
--disk path:指定虚拟机存储设备及其属性
format:指定磁盘映像格式,如raw、qcow2、vmdk。
size:指定磁盘大小。
bus:指定磁盘类型,如ide、scsi、virtio。
--hvm:当物理机同时支持全虚拟化和半虚拟化时,指定使用全虚拟化
--os-type=windows:指定系统类型,如Windows、linux。
--vnc :指定使用VNC服务
--vncport :指定VNC端口
--network network:指定网络类型为默认(NAT)。
--force:禁止交互模式,自动回答yes。
--autostart:指定虚拟机随物理启动后自动启动。
注意:Windows类系统需要设置为ide,否则安装时提示找不到硬盘。

6.登录VNC
服务器:输入宿主机IP:5901
点击“确定”,输入密码,密码是之前使用vncpasswd 设置的密码。

7.安装系统
根据图形界面提示步骤,完成对系统的安装,这里不再介绍如何安装Windows server 2003。

8.查看虚拟机系统
[iyunv@localhost back]# virsh  list --all
Id    名称                            状态
----------------------------------------------------
1     windows2k3              running
9.配置虚拟机网络
打开"网络设置"--选择"手动"--添加"IP"和"DNS"

10.添加iptables规则
[iyunv@localhost back]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 5089 -j DNAT --to-destination 192.168.122.50:3389
[iyunv@localhost back]# iptables -t nat -A POSTROUTING -s 192.168.122.0/24 -o eth0 -j SNAT --to-source 192.168.0.140
[iyunv@localhost back]# iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
[iyunv@localhost back]# iptables -t nat -A POSTROUTING -s 192.168.122.0/24 -o eth0 -j MASQUERADE
[iyunv@localhost back]# service iptables save    #保存配置
[iyunv@localhost back]# service iptables start    #启动服务

11.开启ip转发功能
[iyunv@localhost back]# echo 1 > /proc/sys/net/ipv4/ip_forward   #临时生效
编辑配置文件
[iyunv@localhost ~]# vim /etc/sysctl.conf
修改以下内容:
net.ipv4.ip_forward = 1
11.查看iptables文件中filter表
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
12.测试虚拟机系统网络
ping命令检查网络
百度搜索“时间”
注意:现在网络已经OK了

13.设置允许远程访问
右键点击“我的电脑”--选择“属性”--点击“远程”--勾选“远程协助”和“远程桌面”

四、新增虚拟机系统(关机windows2k3系统)
1.复制磁盘文件
[iyunv@localhost ~]# cd /data/pool/
[iyunv@localhost pool]# cp /data/back/windows_2k3  windows2003_01

2.复制虚拟机系统配置文件
[iyunv@localhost pool]# cd  /etc/libvirt/qemu/
[iyunv@localhost qemu]# cp windows2k3.xml windows2003_01.xml

3.编辑虚拟机系统配置文件
[iyunv@localhost qemu]# vim windows2003_01.xml
修改以下内容:
将:<name>windows2k3</name> 改为 :<name>windows2003_01</name>
删除 <uuid> 该行
将:<source file='/data/back/windows_2k3'/> 改为:<source file='/data/pool/windows2003_01'/>
删除<mac address='52:54:00:15:f4:e8'/> 该行
将:<graphics type='vnc' port='5901' autoport='no'/> 改为:<graphics type='vnc' port='5951' autoport='no'/>

4.编辑iptables文件
[iyunv@localhost qemu]# vim /etc/sysconfig/iptables
在filter表中添加以下规则:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT
在nat表中添加以下规则:
-A PREROUTING -p tcp -m tcp --dport 5189 -j DNAT --to-destination 192.168.122.51:3389
[iyunv@localhost qemu]# service iptables restart

5.加载配置到列表
[iyunv@localhost qemu]# virsh define windows2003_01.xml

6.查看虚拟机系统列表
[iyunv@localhost qemu]# virsh list --all
Id    名称                               状态
----------------------------------------------------
-     windows2003_01            关闭
-     windows2k3                   关闭

7.启动虚拟机系统
[iyunv@localhost qemu]# virsh start  windows2003_01

8.登录VNC
在PC机上运行VNC,服务器填(服务器ip:端口)登录到虚拟机系统。

9.更改IP
将:192.168.122.50   改为:192.168.122.51

10.检查网络(百度“时间”)
使用浏览器访问百度,搜索“时间”,看看网络是否正常。
注意:使用mstsc远程访问看看,如果没有问题,就完成了新增虚拟机系统。linux的镜像制作也是使用相同方式。

补充内容:
镜像制作完成后是不需要运行的,然而我们配置随宿主机开机启动,所以就需要备份镜像的配置文件(/etc/libvirt/qemu/*.xml),然后通过“virsh undefine hostname”从列表中删除掉。避免物理机重启后运行镜像系统。

四、部署多台KVM server
当完成KVM server 部署后,在/root/anaconda-ks.cfg文件里面会生成服务安装记录,我们就可以利用这个快速部署一台kvm server.
1.搭建web服务挂载文件

2.安装系统,指定文件实现快速部署。
显示安装菜单,按“Tab键”,添加参数“ks=http://192.186.0.132/kvm6.8.txt”
回车键进行系统安装,根据步骤完成系统安装,安装完成系统后,就可以直接在上面安装虚拟机系统勒。。

五、扩展内容--配置桥接网络
1.复制网卡配置文件
[iyunv@localhost ~]# cd /etc/sysconfig/network-scripts/
[iyunv@localhost network-scripts]# cp  ifcfg-eth0  ifcfg-br0

2.编辑“ifcfg-eth0”配置文件
[iyunv@localhost network-scripts]# vim ifcfg-eth0
修改内容为以下:
DEVICE=eth0
HWADDR=00:0C:29:53:9E:C8
TYPE=Ethernet
UUID=bc25100c-e5df-4df8-aade-a3a56a6f8790
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0

3.编辑“ifcfg-br0”配置文件
[iyunv@localhost network-scripts]# vim ifcfg-br0
修改内容为以下:
DEVICE=br0
#HWADDR=00:0C:29:53:9E:C8
TYPE=Bridge
#UUID=bc25100c-e5df-4df8-aade-a3a56a6f8790
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.0.140
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=61.139.2.69
DNS2=8.8.8.8

4.重启网络服务
[iyunv@localhost network-scripts]# service  network restart

5.查看网络
[iyunv@localhost network-scripts]# ifconfig
br0       Link encap:Ethernet  HWaddr 00:0C:29:53:9E:C8
inet addr:192.168.0.140  Bcast:192.168.0.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe53:9ec8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:66 errors:0 dropped:0 overruns:0 frame:0
TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4794 (4.6 KiB)  TX bytes:6606 (6.4 KiB)
eth0      Link encap:Ethernet  HWaddr 00:0C:29:53:9E:C8
inet6 addr: fe80::20c:29ff:fe53:9ec8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:172291 errors:0 dropped:0 overruns:0 frame:0
TX packets:55035 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12734849 (12.1 MiB)  TX bytes:61202008 (58.3 MiB)
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:65536  Metric:1
RX packets:142 errors:0 dropped:0 overruns:0 frame:0
TX packets:142 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:81792 (79.8 KiB)  TX bytes:81792 (79.8 KiB)
virbr0    Link encap:Ethernet  HWaddr 52:54:00:55:FA:8B
inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:894 errors:0 dropped:0 overruns:0 frame:0
TX packets:628 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:198521 (193.8 KiB)  TX bytes:518383 (506.2 KiB)

6.查看网口列表
[iyunv@localhost network-scripts]# brctl show
bridge name        bridge id                STP enabled        interfaces
br0                        8000.000c29539ec8        no                eth0
virbr0                8000.52540055fa8b        yes                virbr0-nic

7.创建磁盘
[iyunv@localhost network-scripts]# cd  /data/pool/
[iyunv@localhost pool]# qemu-img create -f qcow2 -o preallocation=metadata  centos6.8  20G

8.创建虚拟机
[iyunv@localhost pool]# virt-install --name  suny --ram 1024 --disk path=/data/centos6.8,size=20 --vcpus 1 --os-type linux --os-variant rhel6 --network bridge=br0 --graphics vnc,port=5901 --console pty,target_type=serial -c /data/iso/CentOS-6.8-x86_64-bin-DVD1.iso --hvm --force --autostart

9.登录vnc完成系统安装
通过该方式就可以快速的部署KVM Server,然后根据自己需求配置机器吧。


运维网声明 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-297221-1-1.html 上篇帖子: Centos 6 的kvm 安装和配置 下篇帖子: kvm-virsh使用
累计签到:70 天
连续签到:1 天
发表于 2016-11-9 09:32:12 | 显示全部楼层
感谢分享啊

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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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