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

[经验分享] [原]CentOS7.2部署KVM虚拟机

[复制链接]

尚未签到

发表于 2017-6-24 10:10:54 | 显示全部楼层 |阅读模式
  前段时间学习了关于PostGis、OSM数据以及Mapnik相关内容,接下来将利用假期重点学习PostgreSQL-XL和瓦片服务器集群技术,因此先把环境搭好。计划采用KVM来充分利用家里不太宽裕的“服务器”资源,以便实现弹性计算:)
  CentOS版本:64位 7.2  1511

一、安装KVM
  1. 验证CPU是否支持KVM;如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。



egrep '(vmx|svm)' /proc/cpuinfo
DSC0000.png

  2. 关闭SELinux,将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=disabled
DSC0001.png

  3. 最小安装的CentOS安装一些最基本的包(可选项,因为我是刚安装好的CentOS,所以为了下面方便点,先把一些必要的工具安装下)



yum install epel-release net-tools vim unzip zip wget ftp -y
  4. 安装KVM及其依赖项



yum install qemu-kvm libvirt virt-install bridge-utils -y
  5. 验证安装结果,下图说明已经成功安装了



lsmod | grep kvm
DSC0002.png

  6. 开启kvm服务,并且设置其开机自动启动



systemctl start libvirtd
systemctl enable libvirtd
  7. 查看状态操作结果,如下图所示,说明运行情况良好



systemctl status libvirtd
systemctl is-enabled libvirtd
DSC0003.png

  8. 配置网桥模式,先将 /etc/sysconfig/network-scripts/ 目录下的网卡配置文件备份一份(不要备在当前目录以及子目录下,其他目录随意)
  a. 创建 ifcfg-br0 文件,内容如下:



BOOTPROTO=static
DEVICE=br0
TYPE=Bridge
NM_CONTROLLED=no
IPADDR=192.168.1.95
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=61.177.7.1
DNS2=8.8.8.8
  b. 移除掉原来的 ifcfg-enp0s25 ,重新创建该文件,内容如下:



BOOTPROTO=none
DEVICE=enp0s25
NM_CONTROLLED=no
ONBOOT=yes
BRIDGE=br0
  c. 重启网络服务



systemctl restart network
  使用 ifconfig 验证操作结果,多了一块网卡br0,现在访问 think8848-srv02 使用 192.168.1.95 就可以了。
DSC0004.png

  二、安装虚拟机
  1. 准备操作系统安装镜像文件,在本文中将使用和宿主环境一样的CentOS7.2,把该文件放到 /home/iso 目录下
DSC0005.png

  2. 创建虚拟机文件存放的目录



mkdir -p /home/kvm-bak
  3. 使用 virt-install 创建虚拟机



virt-install -n think8848-kvmbase -r 2048 --disk /home/kvm-bak/think8848-kvmbase.img,format=qcow2,size=20 --network bridge=br0 --os-type=linux --os-variant=rhel7.2 --cdrom /home/iso/CentOS-7-x86_64-DVD-1511.iso --vnc --vncport=5910 --vnclisten=0.0.0.0
  操作结果显示:
DSC0006.png

  不要理会里面提示的错误,接着往下走
  4. 打开防火墙上的5910端口



firewall-cmd --zone=public --add-port=5910/tcp --permanent
firewall-cmd --reload
DSC0007.png

  5. 使用VNC连接该虚拟机,进行虚拟机操作系统的安装,直接到VNC官网上下载最新版的VNC Viewer即可
  a. VNC Viewer
DSC0008.png

  b. 新建连接,提供宿主IP、端口号(在virt-install创建过程中指定的),以及名称
DSC0009.png

  c. 在Expert页签中,将ColorLevel的值由原来的 pal8 修改为 rgb222 ,点击OK按钮保存
DSC00010.png

  d. 如果你像我一样,边操作边还在做笔记,等你双击连接的名称后,安装界面都准备好了
DSC00011.png

  接下来就安装CentOS吧,过程略。
  6. 安装完CentOS,系统要求重启,这时候虚拟机没有重启(也不知是因为什么问题),VNC也连不上,先在宿主机上查看虚拟机状态,显示think8848-kvmbase为关闭状态



virsh list --all
DSC00012.png

  7. 手动启动虚拟机



virsh start think8848-kvmbase
DSC00013.png

  再次使用VNC连接,发现已经可以连进去了
DSC00014.png


三、简单配置KVM虚拟机
  1. 网桥配置,这里值得一提的是,如果你在虚拟机中安装CentOS过程中,配置了合适的网格参数,那么这时虚拟机里应该就可以使用网络了。如果当时就采用系统安装包的默认参数,未启用网卡,那么此时你需要启动虚拟机的网卡,先看下虚拟机网卡的配置文件列表,貌似和普通电脑安装没啥区别,网卡的配置文件是 ifcfg-eth0
DSC00015.png

  再查看 ifcfg-eth0配置文件,和普通电脑安装的也没啥区别,按照要求呢,貌似在一些文章中介绍,说需要添加一行配置 NM_CONTROLLED=no ,我没添加也没发现有什么问题。
DSC00016.png

  2. 配置在宿主端登录虚拟机shell。当然在宿主端也是可以通过SSH登录,但是直接登录貌似也是一个不错的方式。这个配置主要有两个步骤:
  a. 编辑 /etc/default/grub 文件,对照如下:
  编辑前:
DSC00017.png

  编辑后:
DSC00018.png

  文本内容:



GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb"
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200"
GRUB_DISABLE_RECOVERY="true"
  b. 运行下面一行的代码



grub2-mkconfig -o /boot/grub2/grub.cfg
DSC00019.png

  c. 重启虚拟机 reboot
  d. 在宿主机上进入虚拟机控制台,想退出时使用 Ctrl 键+ ]  (左方括号)键退出。



virsh console think8848-kvmbase
DSC00020.png


四、迁移虚拟机
  虚拟机建好后,最大的好处就是任由我们折腾,而不用担心重装系统的麻烦。所以一定要知道虚拟机怎么复制迁移,这里有两种情况,一种是本机上镜像复制,另一种是将本机镜像迁移到其他服务器上,本节参考自这里,感谢koumm。
  1. 本机复制
  a. 先关闭虚拟机



virsh shutdown think8848-kvmbase
DSC00021.png

  b. 在 /home 下新建文件夹 /home/kvm-img



mkdir -p /home/kvm-img
  c. 使用 virt-clone 克隆think8848-kvmbase为新的虚拟机



virt-clone -o think8848-kvmbase -n think8848-kvm01 -f /home/kvm-img/think8848-kvm01.img
DSC00022.png

  克隆完成
DSC00023.png

  使用 virsh list --all 查看
DSC00024.png

  d. 开启think8848-kvm01,然后修改IP地址、主机名



virsh start think8848-kvm01
virsh console think8848-kvm01
#等虚拟机启动好后,用root登录

hostname think8848-kvm01
#编辑/etc/hostname文件,修改主机名为think8848-kvm01
vi /etc/hostname
#编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改IPADDR
  e.  reboot 重启虚拟机,重启后刚才修改的内容已经生效了。
DSC00025.png

  2. 将虚拟机镜像迁移到其他服务器上
  a. 先将虚拟机的配置文件和镜像文件放到合适的位置(我搭了一台FTP服务器,方便测试时所有的文件传输,如下图所示)
DSC00026.png

  b. 现在到服务器转战到think8848-srv01(IP:192.168.1.96),刚才虚拟机是在think8848-srv02(IP:192.168.1.95)上创建的。以下所有操作均是在think8848-srv01上进行的
  c. 将ftp上的think8848-kvm01.img放到/home/kvm-img目录,将think8848-kvm01.xml放到/etc/libvirt/qemu目录中
DSC00027.png

  d. 编辑think8848-kvm02.xml,将里面所有think8848-kvm01替换为think8848-kvm02,然后把UUID换为新的(直接使用这个在线工具生成吧)
DSC00028.png

  e. 定义新虚拟机



virsh define /etc/libvirt/qemu/think8848-kvm02.xml
DSC00029.png

  图中think8848-kvm01是我之前在宿主机中配置的虚拟机,恰好名称与之前的重复了。我在think8848-kvm01上没有安装ftp客户端,在新迁移的虚拟机里面安装了ftp,可以利用这个包验证虚拟机是否正确
DSC00030.png

  OK,说明没有问题
  f. 现在是时候再给新的虚拟机指定新主机名和IP了。刚才是我们重启生效的,这次我们不要重启了,先使用 systemctl restart network 使新IP生效,然后再 exit 注销用户使主机名生效,就可以了。
DSC00031.png

  最后一个问题,如果在克隆或迁移后想使用VNC连接,那就需要重新指定VNC的端口号,将 /etc/libvirt/qemu/think8848-kvm02.xml 中的VNC端口号修改你需要的值即可。
DSC00032.png

DSC00033.png


五、KVM管理
  网上有大批,我就不一一贴出来了,下面提供一个比较有用的链接(非常感谢原文作者)
  人在路上兄的虚拟化之KVM virsh常用命令篇

运维网声明 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-387486-1-1.html 上篇帖子: 完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip 下篇帖子: power8_ppc64le_Centos7.2安装及使用kvm方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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