搭建KVM服务器

搭建KVM服务器
安装虚拟化服务器平台
必备软件
? qemu-kvm – 为 kvm 提供底层仿真支持
? libvirt-daemon – libvirtd 守护进程,管理虚拟机
? libvirt-client – 用户端软件,提供客户端管理命令
? libvirt-daemon-driver-qemu – libvirtd 连接 qemu 的驱劢
可选功能
– virt-install

系统安装工具

– virt-manager # 图形管理工具
– virt-v2v # 虚拟机迁移工具
– virt-p2v # 物理机迁移工具
虚拟化平台的安装
[[email protected] ~]# yum install -y qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu
[[email protected] ~]# systemctl start libvirtd
虚拟机的组成:
– 内核虚拟化模块(KVM)
– 系统设备仿真(QEMU)
– 虚拟机管理程序(LIBVIRT)

– 一个 XML 文件(虚拟机配置声明文件)
– 位置 /etc/libvirt/qemu/
– 一个磁盘镜像文件(虚拟机的硬盘)
– 位置 /var/lib/libvirt/images/

管理KVM平台
virsh命令工具介绍:提供管理各虚拟机的命令接口
– 支持交互模式,查看/创建/停止/关闭 .. ..
– 格式:virsh 控制挃令 [虚拟机名称] [参数]
运行|重启|关闭挃定的虚拟机
– virsh start|reboot|shutdown 虚拟机名称
强制关闭挃定的虚拟机
– virsh destroy 虚拟机名称
将挃定的虚拟机设为开机自劢运行
– virsh autostart [--disable] 虚拟机名称

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

qemu-img

创建新的镜像盘文件
– 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 后端名 -f qcow2 前端名
– qemu-img create -b disk.img -f qcow2 disk1.img

连接本地/远程KVM

使用 virsh 客户端工具
– 连接本地
– virsh
– virsh# connect qemu:///system (默认选项)
– 连接远程
– virsh# connect
qemu+ssh://[email protected]:port/system

创建虚拟交换机
? libvirtd 网络接口
– 原理:调用 dnsmasq 提供DNS、DHCP等功能
– 创建配置文件 /etc/libvirt/qemu/networks/vbr.xml
<network>
<name>vbr</name>
<bridge name="vbr"/>
<forward mode="nat"/>
<ip address="192.168.1.254" netmask="255.255.255.0">
<dhcp>
<range start="192.168.1.100" end="192.168.1.200"/>
</dhcp>
</ip>
</network>
Virsh net-define vbr.xml 创建虚拟网络
自定义虚拟机安装:
安装号后创建yum
yum install -y lftp
1、yum 源导入公钥验证配置
gpgcheck=1
导入 gpg key
rpm --import ftp://192.168.1.254/centos/RPM-GPG-KEY-CentOS-7
安装常用命令软件
yum install -y net-tools vim-enhanced bridge-utils psmisc

把刚刚安装好的系统刜始化
– 1、禁用 selinux /etc/selinux/config
SELINUX=disabled
– 2、卸载防火墙不NetworkManager
[[email protected] ~]# yum remove -y NetworkManager- firewalld- python-firewall

网卡配置文件的修改
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
TYPE="Ethernet"
BOOTPROTO="dhcp"
禁用空路由
[[email protected] ~]# vim /etc/sysconfig/network

Created by anaconda

NOZEROCONF="yes

Console及磁盘分区配置
添加 Console 配置及初除磁盘分区里的个性化信息
[[email protected] ~]# vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed ‘s, release .*$,,g‘ /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=ttyS0,115200n8"
GRUB_DISABLE_RECOVERY="true"
GRUB_DISABLE_LINUX_UUID="true"
GRUB_ENABLE_LINUX_LABEL="true"
[[email protected] ~]# grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成 grub.cfg

/etc/fstab 文件中到 UUID 手工修改成系统设备
blkid 查看 uuid 对应的磁盘设备,修改 fstab 文件
[[email protected] ~]# blkid
/dev/vda1: UUID="e96a9117-1d22-4bdd-a72d-3a4cc959ae8a" TYPE="xfs"
[[email protected] ~]# vim /etc/fstab
/dev/vda1 / xfs defaults 0 0

[[email protected] ~]# yum install -y cloud-utils-growpart # 安装分区扩展软件

– 设置第一次开机自劢扩容根目录
[[email protected] ~]# chmod 755 /etc/rc.local
[[email protected] ~]# vim /etc/rc.local
usr/bin/growpart /dev/vda 1
/usr/sbin/xfs_growfs /
/usr/bin/sed ‘/^###/,$d‘ -i /etc/rc.d/rc.local

– 关闭虚拟机后执行信息清理工作
[[email protected] ~]# virt-sysprep -d centos7.0(主机名)
[[email protected]]# virsh undefine centos7.0 删除关闭了的虚拟机,只是不在运行状态而已,通过virsh undefine xxx就能从virsh列表里面(virsh list查看当前系统中的虚拟机列表,详见第2.4节)将其删除,undefine命令不会删除镜像文件和xml文件。运行状态的虚拟机是不能删除的。
[[email protected] images]# cd /var/lib/libvirt/images/
创建后端为hd.img的前端文件pc1.img
[[email protected] images]# qemu-img create -b hd.img -f qcow2 pc1.img
创建 xml 配置文件
把demo.xml 把demo换成node1(新的主机名) 重定向到etc/libvirt/qemu/node1.xml
sed ‘s/demo/node1/‘ demo.xml >/etc/libvirt/qemu/node1.xml
定义虚拟机
virsh define /etc/libvirt/qemu/node1.xml #:virsh define ls xxx.xml?xxx为xml文件所在的路径及文件名称,在当前目录下则不写路径
virsh start node1 开启虚拟机
virsh console node

添加网卡
添加网卡
对虚拟机的配置进行调整
–virsh edit 虚拟机名
<interface type=‘bridge‘>
<source bridge=‘private1‘/>
<model type=‘virtio‘/>
</interface>
添加硬盘
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 disk.img 20G
–virsh edit 虚拟机名
<disk type=‘file‘ device=‘disk‘>
<driver name=‘qemu‘ type=‘qcow2‘/>
<source file=‘/var/lib/libvirt/images/disk.img‘/>
<target dev=‘vdb‘ bus=‘scsi‘/>
</disk>

virsh虚拟机管理
~
连接本地

  • virsh
    – virsh# connect qemu:///system (默认选项)
    – 连接远程
    – virsh# connectbr/>qemu+ssh://[email protected]:port/system
    使用 virt-manager 客户端工具
    – virt-manager 也可以通过 add connection 管理其它机器上的虚拟机,一般通过"remote tunnel over ssh"就可以了
    – 需要注意的是 virt-manager 需要使用 ssh 免密码登录如果没有免密码登录需要单独安装 python 的 ssh 相关模块,这里我们可以使用部署 key 的方法解决
    网络管理
    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配置文件
– 查看:virsh dumpxml 虚拟机名
– 备份:virsh dumpxml 虚拟机名 > 虚拟机名.xml
对虚拟机的配置进行调整
– 编辑:virsh edit 虚拟机名
根据修改后的独立xml文件定义新虚拟机
– virsh define XML描述文件
必要时可去除多余的xml配置
– 比如虚拟机改名的情冴
– 避免出现多个虚拟机的磁盘戒MAC地址冲突
– virsh undefine 虚拟机名

XML详解

XML 配置文件
<domain type=‘kvm‘ id=‘4‘>
<name>centos7.0</name>
<uuid>8413f30a-c978-4796-a28f-8ba9fe74b759</uuid>
<memory unit=‘KiB‘>2097152</memory>
<currentMemory unit=‘KiB‘>2097152</currentMemory>
– id=4 个性化设置 ,去掉
– uuid 去掉
– memory unit 虚拟机最大使用内存,可以手劢调整
– currentmemory 创建虚拟机使用内存

XML 配置文件
– cpu 设置,可以调整
<vcpu placement=‘static‘>2</vcpu>
– 资源设置,可以初除
<resource> ... ... </resource>
– 系统配置及引导设备,丌需要修改
<os>
<boot dev=‘hd‘/>
</os>
– 电源相关配置无需修改
<features> ... ... </features>

XML 配置文件
– cpu配置,可以修改成使用真机cpu

<cpu ... ... />
<cpu mode=‘host-passthrough‘></cpu>
– 时钟相关配置,可以初除
<clock ... ... </clock>
– 重启,关机,强制关闭对应命令
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>

XML 配置文件
– 内存及硬盘休眠相关设置,可以初除

<pm> ... ... </pm>
– 仿真设备相关配置
<devices> ... ... </devices>
– 其他配置
– 驱劢安全标签,可初除
<seclabel> ... ... </seclabel>

仿真设备配置
– 总线地址,别名配置,都可以初除
<address ....
<alias ...
– 硬盘配置,需要修改
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk ... ... </disk>
– usb 相关设备配置,可以初除
<controller type=‘usb‘

仿真设备配置
– type=‘pci‘ pci总线设备,可初除
– type=‘virtio-serial‘ 串口设备需要保留串口终端
– type=‘network‘ 网络配置需要修改
– type=‘pty‘ 串口终端,需要保留
– type=‘unix‘ 虚拟机通讯控制接口
– type=‘spicevmc‘ 图形图像相关配置可以初除
– type=‘tablet‘ 数位板,可以初除

仿真设备配置
– type=‘mouse‘ 鼠标,保留
– type=‘keyboard‘ 键盘保留
– graphics、video 图形图像显卡相关配置,可以初除
– sound 声卡相关配置,可以初除
– redirdev 设备重定向,可以初除
– memballoon 内存气泡,可以劢态调整内存

搭建KVM服务器

原文地址:http://blog.51cto.com/13124606/2147014

时间: 2024-10-12 12:35:42

搭建KVM服务器的相关文章

搭建KVM服务器、自定义虚拟机

一.关于openstack安装的环境需求1.yum源(网络yum源)yum 源必须要有repodata 作为索引,即有repodata目录才可以作为yum 源.创建repodata :#createrepo (命令执行后当前目录下就有了repodata目录)更新:createrepo --update (也可以删除repodata再重新创建)2.dns服务器3.时间服务器4.2台虚拟机(8G+6G)5.禁用selinuxvim /etc/selinux/configSELINUX=disable

rhel5 搭建KVM

搭建KVM 一台rhel5 服务器 Yum 安装kvm相关包组 配置pxe Host网络及存储 挂载光盘中的VT yum Yum –y grouplinstal KVM service libvirtd restart chkconfig libvirtd on 1. 建立桥接网卡 br0 [[email protected] ~]# cp  /etc/sysconfig/network-scripts/ifcfg-{eth0,br0} [[email protected] ~]# vim  /

centos6.3 搭建KVM虚拟机

突然接到老总需求,需要在现有机房的服务器上边部署KVM,让内网测试机到达外网去测试.说实话有些头疼,因为我们的硬件资源实在是太缺了(小公司...),只有100G的剩余空间,让我在上边跑俩台虚拟机,还得应付时刻增涨的数据,这无疑让我很无语...hadoop可是在这台服务器的...所以,同学们懂了吧,那数据量,每天哗哗滴啊...废话少说,开始搭建~ 一.服务器硬件环境 服务器型号 DELL R710 CPU型号 Intel(R) Xeon(R) CPU  [email protected]*2 物理

Service系统服务(一):安装一个KVM服务器、KVM平台构建及简单管理、virsh基本管理操作、xml配置文件的应用、为虚拟机制作快照备份、快建新虚拟机

一.安装一个KVM服务器 目标: 本例要求准备一台 RHEL7.2 服务器,将其搭建为KVM平台,主要完成下列操作: 1> 关闭本机的SELinux保护.防火墙服务   2> 挂载RHEL7光盘到 /mnt/dvd,将其配置为本机YUM源(baseurl = file:///mnt/dvd)   3> 安装KVM相关包组,确保已启用 libvirtd 服务 方案: RHEL7中的虚拟化服务软件组: 1> 虚拟化平台 -- "Virtualization Platform&

CentOS 7中搭建KVM虚拟化平台

什么是虚拟化 虚拟化就是把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的一项技术. 虚拟化的优势 减少服务器数量,降低硬件采购成本. 资源利用率最大化 降低机房空间.散热.用电消耗的成本. 硬件资源可动态调整,提高企业IT业务灵活性. 高可用性. 在不中断服务的情况下进行物理硬件调整. 降低管理成本. 具备更高效的备灾能力. KVM虚拟化 KVM自linux2.6.20版本后就直接整合到

在 CentOS 7 上搭建 KVM 虚拟化平台

KVM 简介 Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少.KVM目前已成为学术界的主流VMM之一. KVM的虚拟化需要硬件支持(如IntelVT技术或者AMDV技术).是基于硬件的完全虚拟化.而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化.但Xen本身有

使用Gitosis搭建Git服务器

使用Gitosis搭建Git服务器 作者: JeremyWei | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址: http://weizhifeng.net/build-git-server-with-gitosis.html Git 1.安装gitosis 首先是获取gitosis(这里假设你已经安装过git): git clone git://github.com/res0nat0r/gitosis.git 接下来安装gitosis: sudo python s

Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法

首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion 2,创建版本库 svnadmin create /home/myrepos    //这里的文件目录自己随便设置 3,配置svnserve 上述版本库/home/myrepos建立后在文件夹下会生成conf文件夹,进入/home/myrepos/conf下面会有下面3个文件 authz passwd 

在CentOS搭建Git服务器 转

在CentOS搭建Git服务器 来自 :http://www.jianshu.com/p/69ea5ded3ede 前言 我们可以GitHub发布一些开源代码的公共仓库,但对于私密仓库就需要收费了.公司内部通常会搭建自己的Git服务器,我也通过在自己的服务器上搭建练习一下. 开始前先说一下服务器信息,这里是阿里云的CentOS 6.5 64位操作系统. 一 确认服务器是否安装Git [[email protected] git]# rpm -qa gitgit-1.7.1-3.el6_4.1.x