暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

云计算-KVM环境搭建

小旋的技术窝 2020-11-21
468

1 云计算

1.1 什么是云计算?

云计算是按量付费的模式,云计算的底层是通过虚拟化技术来实现的!

云计算和虚拟化有什么不同?

答:俩者没可比性,云计算是一种模式,虚拟化是一门技术

云计算发展历史:

  1. 亚马孙AWS从2006年开始提供云计算服务,是最先提出云计算概念
  2. 阿里云在2008年创建云计算团队,2010年对外提供云计算服务和产品

1.2 云计算的服务类型

没有云计算之前,运维工作:了解底层硬件 + 操作系统 + 搭建运行环境 + 安装部署服务 + 代码上线 + 管理数据

IAAS 基础设施即服务(Infrastrcture As An Service)

云厂商提供:底层硬件 + 操作系统

运维工作:搭建运行环境 + 安装部署服务 + 代码上线 + 管理数据

IAAS服务产品:ECS云主机

PAAS  平台即服务(Plaftorm As An Service)

云厂商提供:底层硬件 + 操作系统 + 运行环境 + 安装部署服务

运维工作:代码上线 + 管理数据

PAAS服务产品:容器服务(k8s,docker)

SAAS  软件即服务(Software As An Service)

云厂商提供:底层硬件 + 操作系统 + 运行环境 + 安装部署服务 + 代码上线 + 管理数据

运维工作:更加关注架构优化设计,需要开发参与

PAAS服务产品:rdp数据库、企业邮箱服务、cnd服务

1.3 为什么用云计算?

小公司

  • 没有云计算之前:运营成本高,扩展不灵活(raid,硬件),风险程度高
  • 有了云计算之后:运营成本低,扩展灵活,风险程度低

大公司

  • 出租闲置服务器计算资源

2 云计算的基础虚拟化KVM

2.1 什么是虚拟化技术?

虚拟化技术:通过模拟计算机硬件,实现在一台计算机上同时运行多个不同操作系统的技术

2.2 Linux平台虚拟化软件

  • qemu:虚拟化技术的鼻祖。依靠软件纯模拟全虚拟化软件,可以运行所有操作系统,兼容性好。运行特别慢
  • xen(半虚拟):性能特别好,但是没有模拟所有硬件,直接使用物理CPU,为了避免重启虚拟机reboot,物理机也会一起重启。需要使用专门的内核,会编译转换一些指令。(Redhat5.5之前)
  • kvm:全虚拟化,有硬件支持CPU,内置在Linux内核模块,而且不需要使用专门的内核。性能比较好,兼容性比较好
  • VMware:图形化界面(windows)
  • virtual box:图形化界面(Oracle)

2.3 安装KVM管理工具

虚拟机准备环境

主机名磁盘大小内存准备工作
kvm60G2GCPU开启虚拟化
kvm0260G2GCPU开启虚拟化

第一步:查看系统内核版本

uname -a

第二步:修改内核文件信息:GRUB_DEFAULT=saved  改为 GRUB_DEFAULT=1

sed -i.bak "s#saved#1#g" /etc/default/grub

第三步:关闭selinux和防火墙,重启系统

sed -i.bak "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
shutdown -h now

第四步:修改yum源文件,使用本地镜像(由于网络yum源对于系统内核兼容版本不一致)

mount /dev/cdrom /mnt/
rm -rf /etc/yum.repos.d/*
cat >> /etc/yum.repos.d/local.repo <<EOF  
[local]
name=CentOS-local
baseurl=file:///mnt
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
EOF

第五步:安装kvm相关管理工具

KVM:Kernel-based Virtual Machine 基于Linux内核的虚拟机,kvm属于内核的模块

安装软件说明

  • libvirt:通用的虚拟机管理软件,可以管理KVM,XEN,QEMU等
  • virt-install:虚拟机的安装工具,依赖安装克隆工具virt-clone
  • qemu-kvm:管理虚拟机的虚拟磁盘,是直接使用qemu的磁盘技术,增加了一些适合kvm的代码优化
yum install -y libvirt virt-install qemu-kvm

第六步:启动虚拟管理服务

[root@kvm ~ ]# systemctl start libvirtd
[root@kvm ~ ]# systemctl enable libvirtd

#
 查看信息
[root@kvm ~ ]# lsmod   |  grep kvm
kvm_intel         162153  0 
kvm             525259  1 kvm_intel
    
# 创建 qemu-kvm 软连接
[root@kvm ~ ]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm  

第六步:通过xftp软件上传centos镜像文件到/opt目录下,作为kvm虚拟机安装使用

# 一键化部署kvm
sed -i.bak "s#saved#1#g" /etc/default/grub
sed -i.bak "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld

mount /dev/cdrom /mnt/
rm -rf /etc/yum.repos.d/*
cat >> /etc/yum.repos.d/local.repo <<EOF  
[local]
name=CentOS-local
baseurl=file:///mnt
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
EOF

yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python virt-manager libvirt-client virt-install virt-viewer -y
systemctl start libvirtd
systemctl enable libvirtd
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm  
reboot

2.4 安装VNC远程连接服务

为什么使用VNC?

答:Linux系统是一个纯命令行的系统,不支持图形化界面。

kvm虚拟机启动之后,会启动一个VNC会话服务,将虚拟机的控制台界面通过VNC协议传输给VNC客户端。

第一步:在Linux上安装VNC服务软件

[root@kvm ~ ]# yum install -y tigervnc tigervnc-server

第二步:VNC设置接连密码

[root@kvm ~ ]# vncpasswd
Password   # 输入vnc登录密码
Verify    # 确认vnc登录密码

第三步:复制VNC连接会话文件并重命名(vncserver@:N.service 第N个vnc会话)

[root@kvm ~ ]# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

第四步:修改文件信息(实际修改:<USER> 改为 root)

[root@kvm ~ ]# vi /etc/systemd/system/vncserver@:1.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple

#
 Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver_wrapper root %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

第五步:使VNC加载配置文件

systemctl daemon-reload

第六步:启动VNC连接会话

systemctl start vncserver@:1.service
systemctl enable vncserver@:1.service

注:VNC会话法务正常启动,解决方式如下

[root@kvm ~]# systemctl start vncserver@:1.service
Job for vncserver@:1.service failed because the control process exited with error code. See "systemctl status vncserver@:1.service" and "journalctl -xe" for details.

注意:vnc服务无法启动
[root@k ~]# rm -f /tmp/.X11-unix/*

2.5 创建kvm虚拟机

建议安装kvm虚拟机,宿主机内存不要小于1G

[root @kvm /opt ]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos7.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1804.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

Starting install...
Allocating 'cenntos01.raw'                                                                            |  10 GB  00:00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.

virt-install 参数说明

  • --virt-type kvm 指定虚拟化类型(默认:qemu)
  • --os-type=linux   指定创建虚拟机系统类型
  • --os-variant rhel7   指定系统版本,centos7 = rhel7  查看支持系统版本:osinfo-query os)
  • --name centos7      指定虚拟机名字(必须唯一)
  • --memory 1024  指定虚拟机内存
  • --vcpus 1                 指定虚拟CPU核数
  • --disk /opt/cenntos01.raw,format=raw,size=10 指定虚拟机磁盘文件(必须唯一),磁盘类型,磁盘大小
  • --cdrom /opt/CentOS-7-x86_64-DVD-1804.iso 指定安装镜像
  • --network network=default 使用默认NAT网络
  • --graphics vnc,listen=0.0.0.0  指定;连接控制台协议和监听网段信息(默认监听:127.0.0.0)
  • --noautoconsole   重启自动连接VNC(可有可无)

安装kvm虚拟机调优步骤

第一步:设置时区为上海

第二步:手动分区,只分一个根分区(kvm虚拟机磁盘本身就是虚拟化出来的,不要swap分区消耗的是磁盘IO。)

第三步:关闭内核崩溃备份机制(会占用一些内存)

第四步:开启网卡

第五步:添加中文语言包






文章转载自小旋的技术窝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论