目前我们大多数资源(包含生产、测试)均部署在云服务器上,成本较高,为有效节约成本,测试服务拟部署在物理服务上。
本文将针对内部物理机,进行网络配置与基于**KVM**的虚拟化,便于测试服务的迁移。
## **一、基础准备**
- 戴尔(DELL)机架式R740服务器主机,其他服务器也可
- CentOS7.x系统
## **二、网络配置**
- 登陆服务器
- 进入`/etc/sysconfig/network-scripts`目录,
- 我们`ls`看一下:

- 编辑**em1**网卡信息:
```
TYPE=Ethernet #网卡类型:为以太网
PROXY_METHOD=none #代理方式:关闭状态
BROWSER_ONLY=no #只是浏览器
BOOTPROTO=static # 需修改,网卡的引导协议,设置为静态IP
DEFROUTE=yes #默认路由
IPV4_FAILURE_FATAL=no #是不开启IPV4致命错误检测
IPV6INIT=yes #IPV6是否自动初始化
IPV6_AUTOCONF=yes #IPV6是否自动配置
IPV6_DEFROUTE=yes #IPV6是否可以为默认路由
IPV6_FAILURE_FATAL=no #是否开启IPV6致命错误检测
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=em1 #网卡物理设备名称
UUID=333114a0-3213-4a94-1132-72473adf11e1 #通用唯一识别码
DEVICE=em1 #网卡设备名称, 必须和`NAME`值一样
ONBOOT=yes #需修改,是否开机启动
#重点关注这部分,需添加
IPADDR=192.168.16.10 #IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.16.254 #局域网网关
DNS1=8.8.8.8 #DNS解析服务器
```
- 配置完成后,执行 `systemctl restart network` 重启网络服务
- 执行 `ping www.baidu.com` 测试网络连通性,执行结果如下:

## **三、 Libvirt、KVM安装**
### 3.1.检查CPU是否支持虚拟化
```
[root@localhost network-scripts]# grep vmx /proc/cpuinfo
```

有vmx信息输出即可,如果没有任何的输出,说明cpu不支持,无法使用KVM虚拟化。
### 3.2.确保BIOS里开启虚拟化功能,即查看是否加载KVM模块
```
[root@localhost network-scripts]# lsmod | grep kvm
```

如果没有加载,运行以下命令:
```
[root@localhost network-scripts]# modprobe kvm
[root@localhost network-scripts]# modprobe kvm-intel
[root@localhost network-scripts]# lsmod | grep kvm
kvm_intel 170086 0
kvm 566340 1 kvm_intel
irqbypass 13503 1 kvm
```
### 3.3.安装libvirt及kvm
`libvirt`是管理虚拟机的API库。
```
[root@localhost network-scripts]# yum -y install libcanberra-gtk2 qemu-kvm.x86_64
qemu-kvm-tools.x86_64 libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64
libvirt-java.noarch libvirt-python.x86_64 libiscsi-1.7.0-5.el6.x86_64 dbus-devel
virt-clone tunctl virt-manager libvirt libvirt-python python-virtinst
```
### 3.4安装`X-window`,支持`virt-manager`可视化
```
[root@localhost network-scripts]# yum groupinstall "X Window System"
```
## **四、虚拟机安装**
虚拟机安装,我们使用`virt-manager`进行可视化操作。
- 下载镜像
这里我们提供一个`CentOS7`的镜像,
链接:https://pan.baidu.com/s/16mO0iF-HB5D-L6hCjXPRwA
提取码:6fe1
- 执行`virt-manager`命令
选择我们我们刚才下载的镜像文件


- 配置内存和CPU

**资源分配注意与同事沟通资源占用情况**
- 创建数据卷
这里我们先看下磁盘占用情况:

```
/dev/mapper/centos-home 3.6T 33M 3.6T 1% /home
```
可以看到资源剩余较多的是`/dev/mapper/centos-home`,因此我们选择在/home目录创建数据卷。


- 网卡配置
这里选择我们配置的**em1**网卡,并使用桥接。

- 语言选择

- 时区选择

- 持久化配置
磁盘选择我们之前配置的数据卷


- 网络配置



- 虚拟机安装
配置完成后界面如下:

最后我们点击`Begin Installation`。
- 使用SSH可视化工具连接

- 修改网卡配置
```
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens3"
UUID="fd3a2440-9709-4fd0-a839-ed42d221e322"
DEVICE="ens3"
ONBOOT="yes"
IPADDR="192.168.16.16"
PREFIX="24"
GATEWAY="192.168.16.254"
IPV6_PRIVACY="no"
#添加DNS解析服务器
DNS1="8.8.8.8"
```
添加DNS服务器完成后保存,使用`systemctl restart network`重启网络服务。
- 测试公网连通性
```
[root@localhost network-scripts]# ping www.baidu.com
PING www.wshifen.com (45.113.192.101) 56(84) bytes of data.
64 bytes from 45.113.192.101 (45.113.192.101): icmp_seq=1 ttl=45 time=258 ms
64 bytes from 45.113.192.101 (45.113.192.101): icmp_seq=2 ttl=45 time=258 ms
64 bytes from 45.113.192.101 (45.113.192.101): icmp_seq=3 ttl=45 time=258 ms
64 bytes from 45.113.192.101 (45.113.192.101): icmp_seq=4 ttl=45 time=258 ms
64 bytes from 45.113.192.101 (45.113.192.101): icmp_seq=5 ttl=45 time=258 ms
```
- 检查磁盘使用情况
```
[root@localhost network-scripts]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 6.5G 44G 13% /
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 11M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda2 1014M 138M 877M 14% /boot
/dev/sda1 200M 12M 189M 6% /boot/efi
/dev/mapper/centos-home 3.6T 1.9G 3.6T 1% /home
tmpfs 6.3G 4.0K 6.3G 1% /run/user/0
```
可以看到`/dev/mapper/centos-home`使用了1.9G.
## **五、参考资料**
KVM与容器区别、容器运行时docker、服务编排请参考文章:
[容器运行时docker与服务编排](https://juejin.cn/post/7083742011576025118 "https://juejin.cn/post/7083742011576025118")

被折叠的 条评论
为什么被折叠?



