1.虚拟化

1.1概念

将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象 、转换后呈现出来并可供分区、组合为一个或多个电脑配置环境。

1.2应用数据化的原因

1)同一台物理机运行多个不同版本应用软件

2)硬件依赖性较低

3)便于数据迁移

1.3虚拟化的优势

1)提高应用兼容性

2)降低运营成本

3)加速应用部署

4)提高服务器可用性

5)提高资源利用率

6)动态调度资源

7)降低能源消耗

2.KVM

2.1KVM

1)KVM是开源软件

2)是x86架构且硬件支持虚拟化技术(如intel VT或AMD-V)的Linux全虚拟化解决方案

3)包含为处理器提供底层虚拟化可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)

4)需要经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面

5)能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)同时KVM还能够使用ksm技术帮助宿主服务器节约内存。

2.2Virtual Machine Manager

1)虚拟机管理员,可以让用户管理多个虚拟机

2)创建、编辑、引导或停止虚拟机

3)查看并控制每个虚拟机的控制台

4)查看每部虚拟机的性能及使用率

5)查看每部正在运行中的虚拟机以及主控端的即时性及使用率信息

6)无论在本机或远程,皆可使用KVM、Xen、QEMU

3.KVM的部署

3.1环境准备

[root@KVM ~]# cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

[root@KVM ~]# uname -r

3.10.0-693.el7.x86_64

[root@KVM ~]# ifconfig

eth0: flags=4163  mtu 1500

inet 10.0.0.101  netmask 255.255.255.0  broadcast 10.0.0.255

inet6 fe80::af24:1fe3:9292:9747  prefixlen 64  scopeid 0x20

ether 00:0c:29:2c:94:03  txqueuelen 1000  (Ethernet)

RX packets 714  bytes 132837 (129.7 KiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 247  bytes 35367 (34.5 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163  mtu 1500

ether 00:0c:29:2c:94:0d  txqueuelen 1000  (Ethernet)

RX packets 0  bytes 0 (0.0 B)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 0  bytes 0 (0.0 B)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536

inet 127.0.0.1  netmask 255.0.0.0

inet6 ::1  prefixlen 128  scopeid 0x10

loop  txqueuelen 1  (Local Loopback)

RX packets 0  bytes 0 (0.0 B)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 0  bytes 0 (0.0 B)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@KVM ~]# getenforce

Disabled

[root@KVM ~]# systemctl status firewalld.service

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)

Active: inactive (dead)

Docs: man:firewalld(1)

3.2安装相关软件包

[root@KVM ~]#  yum install qemu-kvm libvirt virt-install virt-manager bridge-utils

说明:qemu-kvm    ----模拟计算机的工具,为KVM虚拟机提供IO设备

libvirt    ----管理虚拟机

virt-install    ----命令行的虚拟机创建安装工具

bridge-utils   ----网桥工具

3.4启动

[root@KVM ~]# systemctl start libvirtd

方法一:使用命令行安装部署

3.4创建网桥

[root@KVM ~]# nmcli c add type bridge autoconnect yes con-name br0 ifname br0

Connection 'br0' (f8cd2a6d-1683-4174-825a-76d79b8cefcd) successfully added.

[root@KVM ~]# nmcli c modify br0 ipv4.addresses 10.0.0.101/24 ipv4.method manual

[root@KVM ~]# nmcli c modify br0 ipv4.gateway 10.0.0.254

[root@KVM ~]# nmcli c delete eth0

[root@KVM ~]# nmcli c add type bridge-slave autoconnect yes con-name eth0 ifname eth0 master br0

3.5重启

[root@KVM ~]# reboot

3.6创建安装磁盘

[root@KVM ~]# mkdir -p /var/linux/images

[root@KVM ~]# qemu-img create -f qcow2 /var/linux/images/centos74.img 20G

Formatting '/var/linux/images/centos71.img', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_refcounts=off

3.7安装虚拟机

[root@KVM ~]# virt-install --name centos71 --ram 512 --vcpus 2 --disk path=/var/linux43/images/centos71.img,size=10 --os-type linux --os-variant rhel7 --graphics none --console pty,target_type=serial --location=/var/CentOS-7-x86_64-DVD-1708.iso --extra-args 'console=ttyS0,115200n8 serial'

方法二:VNC

3.5创建安装磁盘

[root@KVM ~]# qemu-img create -f qcow2 /var/linux/images/centos742.img 20G

3.6安装虚拟机(NAT模式)

virt-install --virt-type=kvm --name=c72 --vcpus=1 -r 1024 -c /var/CentOS-7-x86_64-DVD-1503-01.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --disk path=/var/linux/images/centos742.img,size=20,format=qcow2

3.7Windows下VNC连接

4.KVM的相关命令

4.1退出虚拟机

ctrl + ]

4.2进入虚拟机

virsh console centos74

4.3查看虚拟机的及状态

virsh list

virsh list --all

4.4启动虚拟机

virsh start centos74

4.5关闭虚拟机

virsh shutdown centos74

4.6强制关闭虚拟机

virsh destroy centos74

4.7删除虚拟机

virsh shutdown centos74

virsh undefine centos74

5.磁盘管理

5.1查看当前虚拟机硬盘信息

[root@KVM ~]# qemu-img info /var/linux/images/centos74.img

image: /var/linux/images/centos74.img

file format: qcow2

virtual size: 20G (21474836480 bytes)

disk size: 1.2G

cluster_size: 65536

Format specific information:

compat: 1.1

lazy refcounts: false

refcount bits: 16

corrupt: false

5.2转换磁盘格式(qcow2转换为raw)

[root@KVM ~]# qemu-img convert -f qcow2 -O raw /var/linux/images/centos74.img /var/linux/images/centos74.img

5.3KVM虚拟机添加硬盘

5.3.1创建一块新的硬盘

[root@KVM ~]# qemu-img create -f qcow2 /var/linux/images/centos74-add.qcow2 2G

5.3.2查看创建的硬盘信息

[root@KVM ~]# qemu-img info /var/linux/images/centos74-add.qcow2

image: /var/linux/images/centos74-add.qcow2

file format: qcow2

virtual size: 2.0G (2147483648 bytes)

disk size: 196K

cluster_size: 65536

Format specific information:

compat: 1.1

lazy refcounts: false

refcount bits: 16

corrupt: false

5.3.3为虚拟机添加硬盘

[root@KVM ~]# virsh attach-disk centos74 /var/linux/images/centos74-add.qcow2 vdb --live --cache=none --subdriver=qcow2

Disk attached successfully

说明:vdb    第二块硬盘

--live    热添加

--sudbriver    驱动类型

detach-disk    分离磁盘设备

attach-disk     附加磁盘设备

5.4格式化磁盘(在KVM虚拟机中操作)

[root@centos74 ~]# mkfs.xfs /dev/vdb

6.快照管理

6.1创建快照

[root@KVM ~]# virsh snapshot-create cnetos74

6.2查看主机快照列表

[root@KVM ~]#  virsh snapshot-list centos74

6.3查看快照信息

[root@KVM ~]# virsh snapshot-info centos74 --spanshotname 1516607756

6.4还原快照

[root@KVM ~]# virsh snapshot-revert centos74 --spanshotname 1516607756

6.5删除快照

[root@KVM ~]# virsh snapshot-delete centos74 --spanshotname 1516607756

7.KVM虚拟机克隆

[root@KVM ~]# virsh-clone --auto-clone -o centos74

8.KVM虚拟机冷迁移

8.1在KVM02中安装kvm组件

[root@KVM02 ~]# yum install -y libvirt* virt-* qemu-kvm*

8.2配置桥接网络

[root@KVM 02~]# virsh iface-bridge eth0 br0

8.3KVM主机将虚拟机关闭,导出配置文件

[root@KVM ~]# virsh shutdown centos74

[root@KVM ~]# virsh dumpxml centos74 > centos74.xml

8.4将虚拟文件传输到KVM02上

[root@KVM ~]# scp -rp centos74.xml 10.0.0.102:/data

8.5KVM02主机导入文件

[root@KVM02 ~]# virsh define centos74.xml

8.6启动虚拟机

[root@KVM02 ~]# virsh start centos74

9.KVM虚拟机热迁移

9.1KVM虚拟机热迁移的核心

9.1安装virt-manager所需桌面及vnc-server

[root@KVM ~]# yum groupinstall "GNOME Desktop" -y

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

[root@KVM ~]#  yum install -y opnssh-askpass

9.2复制vnc配置文件

[root@KVM ~]# cp /usr/lib/systemd/system/vncserver@.server  /usr/lib/systemd/system/vncserver@\:1.server

9.3修改配置文件

[root@KVM ~]#

egrep -v "^#|^$" /usr/lib/systemd/system/vncserver@\:1.service

[Unit]

Description=Remote desktop service (VNC)

After=syslog.target network.target

[Service]

Type=forking

User=root

ExecStartPre=-/usr/bin/vncserver -kill %i

ExecStart=/usr/bin/vncserver %i

PIDFile=/root/.vnc/%H%i.pid

ExecStop=-/usr/bin/vncserver -kill %i

[Install]

WantedBy=multi-user.target

9.4设置vnc连接时的密码

[root@KVM ~]# vncpasswd

9.5启动vnc服务

[root@KVM ~]# systemctl start vncserver@\:1.services

9.6在KVM主机上部署NFS服务

9.7在KVM02主机上挂载目录

[root@KVM02 ~]# mount -t nfs 172.16.1.101:/var/linux/images /var/linux/images

9.8vnc连接KVM宿主机

9.9添加KVM02宿主机

9.10主机热迁移

9.11在KVM02上查看虚拟主机

[root@KVM02 ~]# virsh list --all

使用kvm部署虚拟化服务器,KVM虚拟化(KVM的部署及使用)相关推荐

  1. 虚拟化服务器类型,虚拟化服务器类型

    虚拟化服务器类型 内容精选 换一换 本次Ceph集群使用TaiShan服务器部署,三个Ceph节点采用三台为TaiShan 200服务器(型号2280):K8s节点两台均采用TaiShan 200服务 ...

  2. 安装VMware,创建虚拟化服务器,配置虚拟化服务器网络,linux安装Mysql

    1. 生产服务器一般是什么操作系统 部署到服务器时服务器的操作系统 windows server(收费 性能是没有linux好的) Linux(开源 免费) 2. Linux Linux并不是一个操作 ...

  3. 物理虚拟化服务器之间的KVM在线动态迁移

    show ~  前几天,我蛋疼的时候做的~     实验下虚拟化可以套嵌几层...   vm套嵌vm主机,大家看看我套嵌了几层. ubuntu-xp-centos-ubuntu  ~ 说正题~ 简单讲 ...

  4. ruby网站部署到服务器,入门知识: 把代码部署到服务器, SSH

    入门知识: 把代码部署到服务器, SSH 2015-07-28 16:28 访问量: 2868 分类: 技术 如何登陆远程服务器呢? $ ssh root@your.server.com -p 334 ...

  5. 如何部署服务器虚拟化,服务器如何虚拟化

    服务器虚拟化的原理 服务器通过安装虚拟化操作系统,在此基础上部署虚机,虚机中可以安装主流的操作系统,VM以寄居的形式处在物理服务器之上,同时,虚机之间互相并列且隔离共用底层的一套硬件设备,虚机内部的操 ...

  6. win10如果虚拟化服务器,win10虚拟化服务器配置

    win10虚拟化服务器配置 内容精选 换一换 K8s和Docker容器场景各组件配置具体如表1. 对于不同的硬件设备,通过在BIOS中设置一些高级选项,可以有效提升服务器性能.服务器上的SMMU一般用 ...

  7. 虚拟化服务器图片,虚拟化 VMware服务器 图片库.ppt

    虚拟化 VMware服务器 图片库 VMware Infrastructure 3 Storage vMotion VMware Infrastructure 3 Update Manager VMw ...

  8. python快速部署一个服务器_Python加Shell快速部署集群

    最近痛感在集群里逐台部署ganglia, cacti这些监控的东西很麻烦,就写了个小程序去批量自动部署.原理是通过Python的pexpect用ssh去复制文件和执行系统命令,我用它来部署gangli ...

  9. 项目部署到服务器需要做什么,项目部署到服务器。

    一.先构建需要部署的项目 image.png 二.找到对应项目,复制pull更新命令(更新镜像) image.png 三.在Xshellell中输入pull命令 [root@test28-nginx ...

  10. web部署到服务器显示404,WAR包部署到服务器的tomcat下404报错

    问题描述:后端项目开发工具是IntelliJ IDEA,运行web项目,本地测试项目能够正常运行.将项目打包成war包之后放到本机的tomcat的webapps下报404,原因应该是版本太低,7版本和 ...

最新文章

  1. TCP和UDP 粘包 消息保护边界
  2. IBatis.Net学习笔记五--常用的查询方式
  3. jaxb 处理_休息使用Jersey –包含JAXB,异常处理和客户端程序的完整教程
  4. 常见浏览器兼容性问题及解决方案
  5. 学计算机的心理300字,心理的作文300字7篇
  6. 小米靠着“便宜”在手机市场中占有一席之地
  7. 历史上的今天 | 甲骨文起诉谷歌;ICCP 成立
  8. 计算机语言丛书学习:C\C++\JAVA\Python 基础-案例-应用
  9. 我的QQ斗地主史及斗地主经验
  10. php 入库验证,mayfish 数据入库验证代码
  11. php 根据身份证计算年龄
  12. 获取微信公众号用户的openid
  13. Oracle (03)分组子句.where条件 与 having条件的区别.子查询.DDL.DML.数据的增删改.TCL
  14. Pytorch并行处理机制
  15. HTML5 + Canvas + 广度优先搜索(BFS) 编写lol连连看
  16. centos7 net-snmp agentx
  17. 喜马拉雅全站音频爬取
  18. onedrive电脑手机不同步_关于OneDrive,移动端同步以及显示不及时的问题。
  19. Gradle本地化构建技巧之自定义Gradle配置文件
  20. 上海高中计算机知识点总结,上海高中高考数学知识点总结(大全)

热门文章

  1. 通过Java监听MySQL数据的变化
  2. mac 显示器分辨率_如何在Mac上选择精确的显示分辨率
  3. python数据驱动读取用例_【webdriver自动化】Python数据驱动工具DDT(示例代码)
  4. Latex中的参考文献写法
  5. 2.1.1.15使用WIFI网卡1_准备工作及配置内核
  6. 程序员都是段子手,注释都带魔性
  7. c#语言中文编程下载,C#编程自学软件
  8. 4.React Native项目开发如何配置调试
  9. FR-报表应用-分组报表-动态显示N个分组
  10. 初学C语言——三位数倒序