搭建KVM服务器(1)

安装虚拟化服务器平台

虚拟化概念

• KVM /QEMU /LIBVIRTD
– KVM是linux内核的模块,它需要CPU的支持,采用硬件辅劣虚拟化技术 Intel-VT,AMD-V,内存的相关如Intel的 EPT 和 AMD 的 RVI 技术。
– QEMU 是一个虚拟化的仿真工具,通过 ioctl 不内核kvm 交互完成对硬件的虚拟化支持。
– Libvirt 是一个对虚拟化管理的接口和工具,提供用户端程序 virsh ,virt-install, virt-manager, virt-view 与用户交互。

必备软件:
• qemu-kvm
– 为 kvm 提供底层仿真支持
• libvirt-daemon
– libvirtd 守护进程,管理虚拟机
• libvirt-client
– 用户端软件,提供客户端管理命令
• libvirt-daemon-driver-qemu
– libvirtd 连接 qemu 的驱劢安装虚拟化服务器平台
• 可选功能
– virt-install
系统安装工具
– virt-manager   # 图形管理工具
– virt-v2v           # 虚拟机迁移工具
– virt-p2v           # 物理机迁移工具
• 虚拟化平台的安装

]#yum install -y qemu-kvm  libvirt-daemon  libvirt-client  libvirt-daemon-driver-qemu
]#systemctl start libvirtd

虚拟机的组成

• 虚拟机平台的组成:
– 内核虚拟化模块(KVM)
– 系统设备仿真(QEMU)
– 虚拟机管理程序(LIBVIRT)
• 一台虚拟机的组成:
– 一个 XML 文件(虚拟机配置声明文件)   路径: /etc/libvirt/qemu/
– 一个磁盘镜像文件(虚拟机的硬盘)  路径: /var/lib/libvirt/images/

管理KVM平台virsh命令工具介绍

• 提供管理各虚拟机的命令接口
– 支持交互模式,查看/创建/停止/关闭 .. ..
– 格式:virsh 控制指令 [虚拟机名称] [参数]

[root@nova01 ~]# virsh
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit

virsh       //查看虚拟化信息
• 查看KVM节点(服务器)信息
– virsh nodeinfo
• 列出虚拟机
– virsh list [--all]
• 列出虚拟网络
– virsh net-list [--all]
• 查看指定虚拟机的信息
– virsh dominfo 虚拟机名称

开关机操作

• 运行|重启|关闭指定的虚拟机
– virsh start|reboot|shutdown 虚拟机名称
• 强制关闭指定的虚拟机
– virsh destroy 虚拟机名称
• 将挃定的虚拟机设为开机自劢运行
– virsh autostart [--disable] 虚拟机名称

常用镜像盘类型

• 虚拟机的磁盘镜像文件格式

 

qemu-img

• qemu-img 是虚拟机的磁盘管理命令

• qemu-img 支持非常多的磁盘格式,例如 raw、qcow2、vdi、vmdk 等等

• qemu-img 命令格式:

– qemu-img   命令  参数  块文件名称  大小

– 常用的命令有

– create 创建一个磁盘

– convert 转换磁盘格式

– info 查看磁盘信息

– snapshot 管理磁盘快照

创建新的镜像盘文件

– qemu-img create -f 格式 磁盘路径 大小

– qemu-img create -f qcow2 disk.img 50G

• 查询镜像盘文件的信息

– qemu-img info 磁盘路径

– qemu-img info disk.img

• -b 使用后端模板文件

– qemu-img create -b disk.img -f qcow2 disk1.img

COW技术原理

• Copy On Write(写时复制)

– 直接映射原始盘的数据内容

– 当原始盘的旧数据有修改时,在修改之前自劢将旧数据存入前端盘

– 对前端盘的修改不回写到原始盘

virsh虚拟机管理

连接本地/远程KVM

• 使用 virsh 客户端工具

– 连接本地

– ]#virsh

– virsh# connect qemu:///system (默认选项)

– 连接远程

– virsh# connect qemu+ssh://user@ip.xx.xx.xx:port/system虚拟机远程管理

[root@room9pc01 ~]# virsh -c qemu+ssh://root@176.130.4.3/system

• 使用 virt-manager 客户端工具

– virt-manager 也可以通过 add connection 管理其它机器上的虚拟机,一般通过"remote tunnel over ssh"就可以了

– 需要注意的是 virt-manager 需要使用 ssh 免密码登录如果没有免密码登录需要单独安装 python 的 ssh 相关模块,这里我们可以使用部署 key 的方法解决。

创建虚拟交换机  (可以连接外网)

• libvirtd 网络接口

– 原理:调用 dnsmasq 提供DNS、DHCP等功能

– 创建配置文件 /etc/libvirt/qemu/networks/vbr.xml

[root@room9pc01 ~]# vim /etc/libvirt/qemu/networks/vbr.xml

<network>
  <name>vbr</name>
  <forward mode='nat'/>
  <bridge name='vbr' stp='on' delay='0'/>
  <ip address='192.168.3.254' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.3.100' end='192.168.3.200'/>
    </dhcp>
  </ip>
</network>

[root@room9pc01 ~]# cd /etc/libvirt/qemu/networks/    #要进入到相关目录里新建虚拟网卡。

[root@room9pc01 network]# virsh

virsh # net-define vbr.xml

从 vbr定义网络vbr.xml

virsh # net-list 
 名称               状态     自动开始  持久
----------------------------------------------------------
 default              活动     是           是
 private1             活动     是           是
 private2             活动     是           是
 public1              活动     是           是
 public2              活动     是           是
 rhce                 活动     是           是
 vbr                  活动     否           是

virsh # net-autostart vbr
网络vbr标记为自动启动

virsh # net-list 
 名称               状态     自动开始  持久
----------------------------------------------------------
 default              活动     是           是
 private1             活动     是           是
 private2             活动     是           是
 public1              活动     是           是
 public2              活动     是           是
 rhce                 活动     是           是
 vbr                  活动     是           是

virsh # quit

[root@room9pc01 images]# ifconfig vbr
vbr: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.3.254  netmask 255.255.255.0  broadcast 192.168.3.255
        ether 52:54:00:0d:2f:13  txqueuelen 1000  (Ethernet)
        RX packets 6223  bytes 523942 (511.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7985  bytes 54000037 (51.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

网络管理

• virsh 管理虚拟网络

– net-list                   查看虚拟网络

– net-define vbr.xml  创建虚拟网络

– net-undefine vbr    删除虚拟网络

– net-start vbr          启动虚拟网络

– net-destroy vbr      停止虚拟网络

– net-edit vbr            修改 vbr 网络的配置

– net-autostart vbr    设置 vbr 虚拟网络开机自启

xml管理

导出虚拟机

xml配置文件

– 定义了一个虚拟机的名称、CPU、内存、虚拟磁盘、 网卡等各种参数设置

– 默认位置: /etc/libvirt/qemu/虚拟机名.xml

• 导出xml配置文件

– 查看:virsh dumpxml 虚拟机名

– 备份:virsh dumpxml 虚拟机名 > 虚拟机名.xml

编辑虚拟机设置

• 对虚拟机的配置进行调整

– 编辑虚拟机配置:virsh edit 虚拟机名

– 若修改 name、memory、disk、network,可自动保存为新虚拟机配置

[root@kvmsvr ~]# virsh edit rhel-207

<domain type='kvm'>

<name>rhel-207</name>

<uuid>76d5dc2c-5eef-4e30-8b6c-e58851814f84</uuid>

<disk type='file' device='disk'>

<source file='/var/lib/libvirt/images/rhel7.2.qcow2'/>

.. ..

<interface type='network'>

<mac address='52:54:00:91:52:e4'/>

.. ..

导入虚拟机

• 根据修改后的独立xml文件定义新虚拟机

virsh define XML描述文件

[root@kvmsvr ~]# virsh define /root/rhel-207.xml

定义域 rhel-207(从 /root/rhel-207.xml)

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

Id        名称              状态

----------------------------------------------------

-       rhel-207           关闭

-       rhel7.2            关闭

删除虚拟机

• 必要时可去除多余的xml配置

– 比如虚拟机改名的情况

– 避免出现多个虚拟机的磁盘戒MAC地址冲突

virsh undefine 虚拟机名

[root@kvmsvr ~]# virsh undefine rhel7.2

域 rhel7.2 已经被取消定义

自定义虚拟机

网络yum源的安装和配置

• 快速配置网络 yum 源

– 配置ftp

yum install vsftp

– 修改配置文件 /etc/vsftpd/vsftpd.conf

– listen=YES

– listen_ipv6=NO

– systemctl enable vsftpd

– systemctl start vsftpd

– vsftp 默认根目录为 /var/ftp网络yum源的安装和配置

• 快速配置网络 yum 源

– 在 ftp 跟目录创建文件夹 centos7

– 把 CentOS7 的光盘挂载到刚刚创建的目录上

mount –t iso9660 –o loop,ro /xx/xx.iso /var/ftp/centos7

– 在客户机里面配置 /etc/yum.repos.d/xxx.repo

[Centos_repo]

name= CentOS packet

baseurl=ftp://xx.xx.xx.xx/centos7

enabled=1

gpgcheck=0

– ]#yum repolist

virt-manager安装虚拟机

• 启动 virt-manager 软件,选择新建虚拟机

• 选择网络安装源

          

创建后端盘文件

– ]#qemu-img create -f qcow2 node.qcow2 10G     //大小没有要求

      

网络选择前面创建的自定义的 vbr   (可以连接外网)

–此虚拟机作为后端盘语言选择英语、软件选择 minimal、关闭 KDUMP、 选择手工分区

• 手动分区

• 使用标准分区格式,只分一个根分区

• 选取一个根分区,开启安装系统

系统装完后可以进行初始化操作,见搭建KVM服务器(2)。

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值