ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 一 虚拟化基础 1. 什么是虚拟化 虚拟化就是通过模拟计算机硬件(cpu,内存,硬盘,网卡)来实现在一台物理服务器上运行同时多个不同的操作系统,并且使每个操作系统之间都是互相隔离的 2. 什么是kvm虚拟化 目前国内的公有云底层采用的都是kvm虚拟化,经过这几年的快速发展,kvm计算已经非常成熟稳定,在任何linux发行版中,kvm都是标配,虚拟化已经成为了一项必备的技能 ## 二 环境准备 1. 主机规划 | 主机名 | IP地址 | 操作系统 | 内存 | 硬盘 | | --- | --- | --- | --- |--- | | kvm01 | 10.0.0.11 | centos7.4 | 4G | 50G | 2. 上传模板并克隆 根据以前的标准模板克隆主机,克隆后按规划设置主机名,IP地址,并关闭selinux和firewalld 3. 在window上安装TightVNC tightvnc官网:http://www.tightvnc.com vnc是一个跨平台的远程桌面软件,待会安装kvm虚拟机系统的时候使用 4. 确定服务器支持虚拟化 ``` [root@kvm01 ~]# cat /proc/cpuinfo | egrep -o 'vmx|svm' vmx ``` 5. 上传centos7.4镜像 ``` mkdir /server/tools/ && cd /server/tools/ #然后上传镜像到本目录 ``` ## 三 快速部署 ### 1.安装软件启动服务 * libvirt服务:管理kvm虚拟机的生命周期 * virt-install工具:创建安装虚拟机 * qemu-kvm工具:使用qemu-img为虚拟机提供硬盘 **安装软件** ``` yum install libvirt virt-install qemu-kvm -y ``` **启动libvirtd服务** ``` systemctl start libvirtd.service systemctl enable libvirtd.service ``` **校验** kvm服务启动后,系统会多出一个`virbr0`的网卡,配置如下 ```sh [root@kvm01 ~]# ip addr show dev virbr0 3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000 link/ether 52:54:00:a7:ca:46 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 ``` ### 2.创建启动虚拟机 建议虚拟机内存不要低于1024M,否则安装系统特别慢! ```sh virt-install --virt-type kvm \ --os-type=linux \ --os-variant rhel7 \ --name centos7-mb \ --memory 1024 \ --vcpus 1 \ --disk /opt/centos7-mb.raw,format=raw,size=5 \ --cdrom /server/tools/CentOS-7.4-x86_64-DVD-1708.iso \ --network network=default \ --graphics vnc,listen=0.0.0.0 \ --noautoconsole ``` ### 3.通过vnc安装系统 qemu-kvm启动后默认监听5900端口,通过`virsh vncdisplay centos7-mb `命令显示该虚拟机的vnc端口号,结果是`:0`. 因此可以使用windows机器上的vnc客户端,使用`10.0.0.11:5900`连接虚拟机安装系统 如果vnc端口号是`:1`,则使用`10.0.0.11:5901` 连接成功后,就按正常的安装步骤安装centos7 ![vnc连接图例](https://www.github.com/noah-luo/imags/raw/master/year/1558769107001.png) ## 四 console登录 1. VNC登录问题1 常规情况下,安装完 KVM 之后,可能都会通过 VNC 连接到 KVM 虚拟机里面去修改 IP 等信息。 但是一旦虚拟机比较多的话,打开过多的端口会造成安全问题 2. VNC登录问题2 很多时候,我们是通过跳板机连接的宿主机,window和kvm宿主机没有直达的路由,这时候vnc都用不了,如何快速进入到 KVM 虚拟机里面去排查问题呢? 3. 解决办法:console登录 打开虚拟机的console以后,就可以在宿主机上直接连接虚拟机,包括启动过程都可以看得到,而不必等虚拟机启动好以后,才能用ssh连接 ### 开启console登录 以下开启操作都是需要进到虚拟机中操作的 1. centos7 ```sh grubby --update-kernel=ALL --args="console=ttyS0,115200n8" reboot ``` 2. centos6 很麻烦,省略 开启后,可以通过以下命令在宿主机上直接进入虚拟机 `virsh console centos7mb ` > 退出当前虚拟机的console界面命令:"ctrl + ]" ### 其他说明 可以直接使用官方已经做好的镜像,免去了安装步骤