字符模式下构建、使用KVM虚拟化平台

简介:

字符模式下构建、使用KVM虚拟化平台


环境准备:

KVM虚拟化服务器(真机或高配虚拟机(内存>4G) 

操作系统:CentOS 6.5   ==> 关闭 iptables 防火墙、关闭SELinux机制,进入图形桌面   

网卡连接:eth0 (VMnet4) ==> 关闭 NetworkManager 服务    

主机名:kvmsvr.tarena.com

    IP地址:172.30.8.202/24

    

分区示例:

        /boot  200MB、SWAP 8GB、/  80GB、

        /var/ftp  40GB (逻辑卷 /dev/vg_data/lv_data)


一:在KVM服务器上为CentOS 6.5客户机提供 YUM 源


1. 安装、启用 vsftpd 服务,允许匿名下载


[root@kvmsvr ~]# rpm  -ivh  /光盘挂载点/Packages/vsftpd*.rpm

[root@kvmsvr ~]# service  vsftpd  restart

[root@kvmsvr ~]# chkconfig  vsftpd  on


2. 插入CentOS 6.5光盘,将其中所有文档部署到 FTP 目录


[root@kvmsvr ~]# mkdir  -p  /var/ftp/pub/iso/centos/6.5/

[root@kvmsvr ~]# cp  -rf  /misc/cd/*  /var/ftp/pub/iso/centos/6.5/


3. 在本机测试,确保 YUM 源可用


[root@kvmsvr ~]# vim  /etc/yum.repos.d/centos6.repo

[CentOS-Base]

name=CentOS 6.5 Packages

baseurl=ftp://172.30.8.202/pub/iso/centos/6.5

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@kvmsvr ~]# yum  repolist

.. ..


二:安装 KVM 虚拟化相关软件、启用服务


[root@kvmsvr ~]# yum  -y  groupinstall  "Virtualization"  "Virtualization Client"  "Virtualization Tools" "Virtualization Platform" 

.. ..

[root@kvmsvr ~]# service  libvirtd  restart

[root@kvmsvr ~]# chkconfig  libvirtd  on


三:准备要装虚拟机的光盘镜像,并且在物理机准备yum源

准备一个目录存放redhat5.10

[root@localhost /]# mkdir /ISO     #用于存放redhat5.10的yum源

[root@localhost /]# mkdir -p /var/ftp/pub/iso/redhat/5.10/

[root@localhost /]# mkdir /data

[root@localhost /]# mount -o loop /ISO/redhat5.10.iso /data   #准备5.10的yum源

[root@localhost /]# cp -rf /data/* /var/ftp/pub/iso/redhat/5.10/

[root@localhost /]# umount /data


四:从命令行创建虚拟机(建模板机)


准备工作:创建卷组,逻辑卷用于存放新建的虚拟机

新建一个100G大的分区/dev/sda7

[root@localhost /]# pvcreate /dev/sda7

[root@localhost /]# vgcreate vg_data /dev/sda7

新建一个逻辑卷作为redhat5.10虚拟机的安装位置

[root@localhost /]# lvcreate -L 15G -n redhat5.10 /dev/vg_data


不同装机方式

***********************************************************

1. 从光盘(ISO镜像文件)装新虚拟机

[root@kvmsvr ~]# virt-install \

--name redhat5.10  --vcpus=1  --ram=1024  \

--disk path=/dev/vg_data/redhat5.10 \

--network network=default   --cdrom=/ISO/redhat5.10.iso

2. 从指定URL的软件源装新虚拟机

[root@kvmsvr ~]# virt-install \

--name redhat5.10  --vcpus=1  --ram=1024  \

--disk path=/dev/vg_data/redhat5.10 \

--network  network=default   --location=ftp://172.30.8.202/pub/iso/redhat/5.10


3. 使用本机PXE服务(隔离网段)装新虚拟机(字符模式)

[root@kvmsvr ~]# virt-install \

--name redhat5.10  --vcpus=1  --ram=1024  \

--disk path=/dev/vg_data/redhat5.10 \

--graphics none --network  bridge=virbr1  --pxe


KVM虚拟化的命令行管理


一:virsh 命令工具的基本操作

virsh  //直接进交互模式     

virsh  nodeinfo   //查看KVM节点(服务器)信息

virsh  list           //列出正在运行的虚拟机   

virsh  list  --all   //列出所有虚拟机(包括未启动的)

virsh  dominfo  虚拟机名称   //查看指定虚拟机的信息   

virsh  start  虚拟机名称   //将指定的虚拟机开机

virsh  reboot  虚拟机名称   //将指定的虚拟机重启   

virsh  shutdown  虚拟机名称   //将指定的虚拟机正常关机

virsh  destroy  虚拟机名称   //将指定的虚拟机强制关机(相当于拔电源)   

virsh  autostart  虚拟机名称   //将指定的虚拟机设置随KVM自动开机

virsh  autostart  --disable  虚拟机名称   //将指定的虚拟机设置随KVM自动开机


二:使用虚拟机的XML描述文件


1. 为已有的虚拟机改名

1)导出虚拟机 rh5_n1 的XML描述信息,保存为 new.xml 文件

[root@kvmsvr ~]# virsh  dumpxml  rh5_n1  >  new.xml

2)修改 new.xml

[root@kvmsvr ~]# vim  new.xml

<domain type='kvm' id='1'>

<name>rhel5_node1</name>   //修改为新的虚拟机名称 

<uuid>c33a4aad-c555-48b3-a0a9-893ad0b4775e</uuid>   //修改UUID值(可执行uuidgen命令获得)    

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

<driver name='qemu' type='raw' cache='none'/>  

<source file=‘/data/images/node1.img’/>           //因为只是改名,虚拟磁盘可不变

      .. ..

    </disk>

.. ..  


3)根据 new.xml 建立新的虚拟机

[root@kvmsvr ~]# virsh  define  new.xml    #定义域 rhel5_node1(从 new.xml)

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

Id    名称                         状态

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

1     rh5_n1                         启用

 -     rhel5_node1                    关闭


4)删除原虚拟机的 XML 描述

[root@kvmsvr ~]# virsh  destroy  rh5_n1   //强制关机 域 rh5_n1 被删除

[root@kvmsvr ~]# virsh  undefine  rh5_n1   //删除虚拟机定义

域 rh5_n1 已经被取消定义

[root@kvmsvr ~]# virsh  list  --all   //确认删除结果

 Id    

名称                         状态

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

 -    

rhel5_node1                    关闭


2. 复制虚拟机

1)导出虚拟机 rh5_n1 的XML描述信息,保存为 rh5_n2.xml 文件

[root@kvmsvr ~]# virsh  dumpxml  rh5_n1  >  rh5_n2.xml

2)修改 rh5_n2.xml

[root@kvmsvr ~]# vim  rh5_n2.xml

<domain type='kvm' id='1'>  

<name>rh5_n2</name>   //修改为新的虚拟机名称 

<uuid>c33a4aad-c555-48b3-a0a9-893ad0b4775e</uuid>   //修改UUID值(可执行uuidgen命令获得)    

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

<driver name='qemu' type='raw' cache='none'/>   

<source file=‘/data/images/node2.img’/>           //因为复制,应改用其他虚拟磁盘(可复制)   

 .. ..

    </disk>

.. .. 


3)复制虚拟机 rh5_n1 的磁盘文件

[root@kvmsvr ~]# cp  -p  /data/images/node1.img  /data/images/node2.img

4)根据 rh5_n2.xml 建立新的虚拟机

[root@kvmsvr ~]# virsh  define  rh5_n2.xml 

 #定义域 rh5_n2(从 rh5_n2.xml)



三:访问虚拟机控制台

1. virt-viewer  虚拟机名称   //访问图形控制台,与 virt-manager 管理方式基本一样

2. virsh  console  虚拟机名称   //访问命令行控制台,需要登录,目标虚拟机需要做下列调整(启用ttyS0串口终端)

[root@statiton10 ~]# vim  /boot/grub/grub.conf

.. ..

title .. ..

        

kernel  vmlinuz- .. ..   console=ttyS0   //启用串口控制台

[root@statiton10 ~]# vim  /etc/securetty

在文件的末尾添加ttyS0  //允许root从此接口登入

[root@statiton10 ~]# reboot  //重启虚拟机后生效


LVM逻辑卷在虚拟机存储中的应用和创建虚拟机快照


关于虚拟机网卡的配置

虚拟机创建之后要想和物理机进行通信首先解决网卡问题

(1)桥接模式:虚拟机像一台真实机一样可以访问和物理机连接在同一交换机上的其他物理机,但是容易造成虚拟机和外部物理机的IP地址冲突问题

[root@localhost /]# cd /etc/sysconfig/network-scripts/

[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-br0

[root@localhost network-scripts]# vim ifcfg-br0

DEVICE="br0"

BOOTPROTO="dhcp"

HWADDR="94:DE:80:82:C3:F3"

IPV6INIT="yes"

MTU="1500"

NM_CONTROLLED="no"

ONBOOT="yes"

TYPE=bridge

UUID="6a190276-0abb-437c-a388-8944cccc2bd3"

[root@localhost network-scripts]# vim ifcfg-eth0

添加BRIDGE="br0"

[root@localhost network-scripts]# service network restart

然后将虚拟机的网卡改为桥接模式然后虚拟机就可以与外界物理机进行通信了

(2)NAT模式:相当于一个地址转换,通过物理机的eth0进行地址转换,虚拟机使用NAT模式,就可以相当于内部网络访问外部网络

直接将虚拟机的网卡模式改为NAT模式就行

(3)隔离模式:处于隔离模式只能是物理机和虚拟机之间的通信,虚拟机不能访问外网。

在虚拟机的图形界面新添加一个网络network1最后选择隔离模式,然后重启network1

[root@localhost /]# virsh net-destroy network1

[root@localhost /]# virsh net-start network1

在修改虚拟机的网卡模式时必须处于关机状态

开机之后选择network1

查看和管理虚拟网卡

[root@localhost /]# virsh net-list

名称               状态     自动开始  Persistent

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

default              活动     yes           yes

network1             活动     yes           yes

修改network1虚拟网卡的配置信息

[root@localhost /]# virsh net-edit network1

<network> 

<name>network1</name> 

<uuid>0e4dd1c9-4871-02bf-cb84-8a8595e388c1</uuid> 

<bridge name='network1' stp='on' delay='0' />  #name值对应的是物理机虚拟网卡的名字,                                                      #network1对应的虚拟机网卡的名字

<mac address='52:54:00:32:06:4A'/>

<ip address='192.168.4.1' netmask='255.255.255.0'>

</ip>

</network>


进入虚拟终端对虚拟网卡管理

[root@localhost /]# virsh

欢迎使用 virsh,虚拟化的交互式终端。

输入:'help' 来获得命令的帮助信息    

 'quit' 退出

virsh # net-   

net-autostart  net-destroy    net-info       net-start      net-uuid

net-create    

net-dumpxml    net-list       net-undefine   

net-define     net-edit       net-name      

net-update


修改虚拟机的网卡

[root@localhost /]# virsh edit redhat5.10

<interface type='network'>    

<mac address='52:54:00:e6:f2:e8'/>     

<source network='network1'/>   #通过更改这个值可以选择虚拟机要连接的网卡类型    

<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>  

</interface>


四:给创建好的虚拟机创建快照

创建存放快照的逻辑卷

[root@localhost /]# lvcreate -s -n rhel5.10 (创建存放快照的逻辑卷名) -L +10G /dev/vg_data/redhat5.10(存放模块虚拟机的逻辑卷名)

[root@localhost 桌面]# virsh dumpxml redhat5.10 > new.xml

[root@localhost 桌面]# uuidgen

5d7a505c-1820-473e-877c-a268bab7c41c

[root@localhost 桌面]# vim new.xml 

修改名字,uudi号,快照存放路径,mac地址避免和模板虚拟机发生冲突

<name>rhel5.10</name> 

<uuid>5d7a505c-1820-473e-877c-a268bab7c41c</uuid>

<source dev='/dev/vg_data/rhel5.10'/>

<mac address='52:54:00:e6:f2:e8'/>  


根据修改后的xml文件生成一个快照虚拟机

[root@localhost 桌面]# virsh define new.xml

注:在创建虚拟机后一定要关闭防火墙,selinux,NetworkManager

然后想使虚拟机和物理机进行通信,就必须设置好网卡的问题,

使用隔离模式时创建虚拟网卡,然后通过virsh net-edit 虚拟网卡名 修改虚拟网卡的IP 地址和网卡名字,然后将虚拟机的网卡和该网卡设置在同一网段 











本文转自 无心低语 51CTO博客,原文链接:http://blog.51cto.com/fengzhankui/1543741,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
存储 监控 固态存储
【vSAN分布式存储服务器数据恢复】VMware vSphere vSAN 分布式存储虚拟化平台VMDK文件1KB问题数据恢复案例
在一例vSAN分布式存储故障中,因替换故障闪存盘后磁盘组失效,一台采用RAID0策略且未使用置备的虚拟机VMDK文件受损,仅余1KB大小。经分析发现,该VMDK文件与内部虚拟对象关联失效导致。恢复方案包括定位虚拟对象及组件的具体物理位置,解析分配空间,并手动重组RAID0结构以恢复数据。此案例强调了深入理解vSAN分布式存储机制的重要性,以及定制化数据恢复方案的有效性。
86 5
|
20天前
|
存储 Linux 调度
KVM 虚拟化的功能特性
【10月更文挑战第13天】虚拟化技术创建实体资源的虚拟版本,提升资源利用率。KVM(Kernel-based Virtual Machine)作为全虚拟化解决方案,借助Linux内核实现Hypervisor功能,通过模块化方式提供高效的虚拟化环境。
|
6天前
|
SQL 数据挖掘 数据库
虚拟化数据恢复—XenServer虚拟化平台数据恢复案例
服务器虚拟化数据恢复环境: 某品牌720服务器中有一组通过同品牌、型号为H710P的RAID卡+4块STAT硬盘组建的RAID10磁盘阵列。上层部署XenServer虚拟化平台。1台Windows Server操作系统虚拟机,该虚拟机有2块虚拟磁盘(系统盘+数据盘),当作网站服务器使用。 服务器虚拟化故障: XenServer虚拟机不可用,虚拟磁盘中数据丢失。
|
2月前
|
KVM 虚拟化
虚拟化技术概述及KVM环境安装
关于虚拟化技术概述及KVM环境安装的教程,涵盖了虚拟化的定义、分类、管理工具,以及KVM的系统需求、安装步骤和使用指南。
72 11
虚拟化技术概述及KVM环境安装
|
25天前
|
安全 KVM 虚拟化
OpenEuler 中配置 KVM 虚拟化环境指南
本文档详细介绍了如何在OpenEuler系统中配置和管理KVM虚拟化环境,包括环境准备、组件安装、虚拟机安装及管理命令等,适合初学者和有经验的用户。内容覆盖了从桥接网卡配置到虚拟机的安装与管理,以及常见问题的解决方法,帮助用户高效利用虚拟化技术。
|
3月前
|
Linux KVM 虚拟化
在Linux中,KVM和Docker在Linux虚拟化中的区别是什么?
在Linux中,KVM和Docker在Linux虚拟化中的区别是什么?
|
3月前
|
存储 Linux 调度
OpenStack如何支持虚拟化技术?
【8月更文挑战第21天】
187 0
|
1月前
|
存储 分布式计算 分布式数据库
云计算和虚拟化技术
云计算是指把计算资源、存储资源、网络资源、应用软件等集合起来,采用虚拟化技术,将这些资源池化,组成资源共享池,共享池即是“云”。
135 64
|
11天前
|
存储 持续交付 虚拟化
|
3月前
|
存储 运维 虚拟化
Docker技术概论(1):Docker与虚拟化技术比较
Docker技术概论(1):Docker与虚拟化技术比较
125 17
Docker技术概论(1):Docker与虚拟化技术比较