KVM虚拟化

目录

虚拟化概述

全虚拟化:Hypervisor(虚拟化管理程序)直接安装在物理机上,多个虚拟机在Hypervisor上运行,Hypervisor实现方式一般是一个特殊定制的Linux系统,Xen和Esxi都属于这个类型,性能上比半虚拟化高。

半虚拟化:Hypervisor安装在操作系统上,比较灵活,理论上可支持虚拟机嵌套。

返回目录

KVM介绍

KVM全称Kernel-Based Virtual Machine。其是基于Linux内核实现,模块名称为kvm.ko,只用于管理虚拟CPU和内存。

Libvirt,KVM的管理工具,除了能管理KVM这种Hypervisor,还能管理Xen,VirtualBox等。其包含三类组件,后台daemon程序libvirtd、API库、命令行工具virsh。

libvirtd是服务程序,接收和处理API请求;

API库是的其他人可以开发基于libvirt的高级工具,比如virt-manager,这个是图形化的管理工具;

virsh是KVM命令行管理工具;

返回目录

KVM安装

# 关闭selinux和防火墙
sentenforce 0
vim /etc/selinux/config     //set disabled

systemctl disable firewalld
systemctl stop firewalld

# 安装kvm组件
yum install qemu-kvm qemu-kvm-tools qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer bridge-utils libguestfs-tools

# 启动服务
systemctl enable libvirtd
systemctl start libvirtd

返回目录

KVM管理

创建虚拟机

虚拟机安装命令,参数如下:

# 通用选项
--name=NAME                 虚拟机名称,全局唯一
--ram=MEMORY                虚拟机内存大小,单位为MB
--vcpus=VCPUS               虚拟机cpu核心数

# 安装方法
--cdrom=CDROM               光盘介质安装
--location=LOCATION         安装源url,支持ftp、http、NFS等
--pxe                       基于PXE安装

--os-type=DISTRO_TYPE       操作系统类型,如linux、unix、windows等
--os-variant=DISTRO_VARIANT 某类操作系统的变体,如rhel5、fedora8等

--disk=DISKOPTS             指定存储设备及属性
size                        指定文件大小,单位为GB

--network bridge=INTERFACE_NAME     指定虚拟机网络,选择虚拟机网卡名称

虚拟机创建:

virt-install --name=ceph01 --ram=1024 --disk path=/data/kvm/ceph01/ceph01.img,size=10 --location=/opt/centos.ios --os-variant=rhel7 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"

通过已经存在的虚拟机镜像文件部署虚拟机

virt-install --name test --memory 1024 --disk /kvm/test/test.img --import --network bridge=virbr0 --graphics none --console=pty,target_type=serial

返回目录

virsh管理工具
# 进入管理界面
virsh

# 查看可用的命令
help

# 虚拟机操作命令
start vm_name                           // 开启虚拟机
shutdown vm_name                        // 关闭虚拟机
undefine vm_name                        // 删除虚拟机
console vm_name                         // 进入虚拟机终端界面
list                                    // 查看正在运行的虚拟机,--all 查看所有的虚拟机
edit vm_name                            // 修改虚拟机配置

# 网络配置
net-list                                // 查看正在运行的网络,--all 查看所有的网络
net-edit --network net_name             // 修改网络配置
net-define --file net_file              // 通过配置文件创建网络

# 给虚拟机添加网卡
attach-disk --domain ceph01 --persistent --type bridge --source virbr0

返回目录

磁盘管理
# 创建磁盘文件
qemu-img create -f qcow2 ceph03-3.img 10G

# 给虚拟机添加磁盘
attach-disk --domain ceph03 --source /kvm/ceph03/ceph03-3.img --subdriver qcow2 --target sdc --persistent

# 转换磁盘格式
qemu-img convert -O qcow2 test.raw test.qcow2

qemu-img convert -O qcow2 test.img test.qcow2

qemu-img convert -O vmdk test.qcow2 test.vmdk

qemu-img convert -O qcow2 test.vmdk test.qcow2

返回目录

快照管理
# 创建快照
virsh snapshot-create --domain vm_name
virsh snapshot-create-as --domain vm_name --name snapshot_name --description vm_desc

# 恢复快照
virsh snapshot-revert vm_name snapshot_name

# 删除快照
virsh snapshot-delete --domain vm_name --snapshotname snapshot_name

返回目录

Web管理工具

WebVirtMgr采用几乎纯Python开发,其前端是基于Libvirt的Python接口,将日常的管理操作变得更加的可视化。

宿主机管理功能
  • CPU利用率
  • 内存利用率
  • 网络资源池管理
  • 存储资源池管理
  • 虚拟机镜像
  • 虚拟机克隆
  • 快照管理
  • 日志管理
  • 虚拟机迁移

返回目录

虚拟机管理功能
  • CPU利用率
  • 内存利用率
  • 光盘管理
  • 关/开/暂停虚拟机
  • VNC Console 连接
  • 创建快照

返回目录

配置Libvirtd
# 安装依赖
yum install cyrus-sasl*

# 修改 /etc/sysconfig/libvirtd,支持通过tcp连接
LIBVIRTD_ARGS="--listen"                      // 取消该行注释

# 修改 /etc/sasl2/libvirt.conf,配置用户密码文件位置及mech_list
sasldb_path: /etc/libvirt/passwd.db           // 取消该行注释
mech_list: digest-md5                         // 修改mech_list为digest-md5

# 配置 /etc/libvirt/libvirtd.conf
listen_tcp = 1                                // 允许tcp监听
listen_tls = 0 
tcp_port = "16509"                            // 监听端口
listen_addr = "0.0.0.0"                       // 监听地址
auth_tcp = sasl                               // tcp 认证方式

# 配置/etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"                        // 取消注释

# 重启服务
systemctl restart libvirtd

# 创建连接账号密码
saslpasswd2 -a libvirt admin
...... enter password

# 重启服务
systemctl restart libvirtd

返回目录

WebVirtMgr安装
# 安装依赖包
yum install git python-pip python-libvirt python-libxml2 novnc supervisor nginx

# 下载源码
git clone git://github.com/retspen/webvirtmgr.git

# 配置及启动
cd webvirtmgr
pip install -r requirement.txt                  // 安装项目依赖
./manage.py syncdb                              // 配置管理员账号密码
./manage.py collectstatic                       // 整理静态文件
./manage.py runserver 0:8000                    // 启动

返回目录

Web连接

连接方式:http://ip_address:8000,通过账号密码登陆,再添加libvirt宿主机。

返回目录

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值