虚拟化
使用虚拟化技术能高效利用物理机的热点性能,相对公司内网而言,容易部署并且资源能充分利用(但线上环境性能还有点严重,尤其是放在DB上的应用)
系统环境
- 系统
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
- IP地址
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 34:17:eb:f0:01:1f brd ff:ff:ff:ff:ff:ff
inet 10.11.10.202/24 brd 10.11.10.255 scope global em1
valid_lft forever preferred_lft forever
inet6 fe80::3617:ebff:fef0:11f/64 scope link
valid_lft forever preferred_lft forever
3: em2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether 34:17:eb:f0:01:20 brd ff:ff:ff:ff:ff:ff
KVM的安装部署还是相对简单,都是基于文本界面进行安装部署,当然,内网也有vm之类的可替代方法,但是这类的软件属于商业版性质,如果有版权,则可使用对应的VM技术,而微软框架的企业,则可以使用Hyper-V技术,但是Hyper-V配置中,并没有克隆这一说法,做模拟测试或者快速部署的时候,相对比较麻烦.公司这边的环境,使用KVM内核进行处理
- 安装对应的支持软件
[root@localhost ~]# yum install -y qemu-kvm.x86_64 qemu-kvm-tools.x86_64 qemu-img
[root@localhost ~]# yum -y install libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64 python-virtinst bridge-utils
- 加载KVM内核并确认是否加载成功
[root@localhost ~]# lsmod |grep kvm
kvm_intel 162153 0
kvm 525259 1 kvm_intel
- 查看此时的网卡情况,可以看到多了4|5的网卡属性
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 34:17:eb:f0:01:1f brd ff:ff:ff:ff:ff:ff
inet 10.11.10.202/24 brd 10.11.10.255 scope global em1
valid_lft forever preferred_lft forever
inet6 fe80::3617:ebff:fef0:11f/64 scope link
valid_lft forever preferred_lft forever
3: em2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether 34:17:eb:f0:01:20 brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 52:54:00:82:a1:ac brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 500
link/ether 52:54:00:82:a1:ac brd ff:ff:ff:ff:ff:ff
- 配置网卡的桥接属性,em1为默认网卡,需要用br0桥接
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-em1 ifcfg-br0
[root@localhost network-scripts]# vim ifcfg-br0
TYPE="Bridge"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="br0"
#UUID="abf53d99-3fb3-4704-ba44-b051edf9b42b"
DEVICE="br0"
ONBOOT="yes"
IPADDR="10.11.10.202"
PREFIX="24"
GATEWAY="10.11.10.1"
DNS1="10.11.10.254"
DNS2="9.9.9.9"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_PRIVACY="no"
[root@localhost network-scripts]# vim ifcfg-em1
DEVICE=em1
TYPE=Ethernet
ONBOOT=yes
BRIDGE="br0"
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
NM_CONTROLLED=no
BOOTPROTO=none
- 重启查看配置情况
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP qlen 1000
link/ether 34:17:eb:f0:01:1f brd ff:ff:ff:ff:ff:ff
inet6 fe80::3617:ebff:fef0:11f/64 scope link
valid_lft forever preferred_lft forever
3: em2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether 34:17:eb:f0:01:20 brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 34:17:eb:f0:01:1f brd ff:ff:ff:ff:ff:ff
inet 10.11.10.202/24 brd 10.11.10.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::3617:ebff:fef0:11f/64 scope link
valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 500
link/ether 52:54:00:82:a1:ac brd ff:ff:ff:ff:ff:ff
- 查看网络接口配置
[root@localhost ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.3417ebf0011f no em1
virbr0 8000.000000000000 yes
基础环境搭建好之后,需要安装虚拟终端软件,以防止异常网络波动执行过程中被中断
[root@localhost ~]# yum install -y screen
[root@localhost network-scripts]# screen -S instSys
下载对应的ISO文件到指定目录安装第一台Centos KVM虚拟机
[root@localhost data]# qemu-img create -f qcow2 /data/kvmimg/gzxks01.qcow2 100G
[root@localhost data]# virt-install --name=gzxks01 --ram 4096 --vcpus=4 --autostart --hvm --disk path=/data/kvmimg/gzxks01.qcow2,size=100,format=qcow2 --cdrom /data/download/CentOS-7-x86_64-DVD-1511.iso --graphics vnc,listen=0.0.0.0,port=5900 --network bridge=br0,model=e1000 --force --connect qemu:///system
使用VPN工具连接即可看到图形