字符模式下构建、使用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,如需转载请自行联系原作者
目录
相关文章
|
21天前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
33 0
|
4月前
|
存储 边缘计算 监控
探索未来科技趋势:虚拟化技术与云计算平台OpenStack的概念与实践
在迅猛发展的信息技术时代,企业和组织对于高效、可扩展的计算资源需求日益增长。虚拟化技术和云计算平台OpenStack应运而生,为企业提供了一种灵活、可靠的解决方案。本文将深入探讨虚拟化技术与OpenStack的概念和实践,展示它们在现代科技领域中的重要性和应用前景。
71 3
|
4月前
|
存储 监控 搜索推荐
构建无边界的数字未来:虚拟化技术与云计算平台OpenStack的概念与实践
在当今数字化时代,虚拟化技术和云计算平台已经成为企业和组织实现数字化转型的关键驱动力。本文将介绍虚拟化技术的概念和作用,并重点探讨了开源云计算平台OpenStack在实践中的应用和优势。通过深入了解虚拟化技术和OpenStack平台,读者将能够更好地理解如何利用这些技术构建无边界的数字化未来。
|
4月前
|
存储 人工智能 调度
虚拟化技术与云计算平台 OpenStack:解锁数字化时代的无限潜能
在数字化时代,虚拟化技术和云计算平台已经成为企业和组织加速创新、提高效率的关键工具。本文将介绍虚拟化技术和OpenStack云计算平台的基本概念,探讨其在实践中的应用,以及它们如何协同作用,为企业带来无限的潜能与机会。
|
5月前
|
弹性计算 人工智能 安全
大数据时代,如何基于机密虚拟化技术构建数据安全的“基石”
2023年10月31日-11月2日,2023云栖大会在中国杭州·云栖小镇举行,阿里云弹性计算产品专家唐湘华、阿里云高级安全专家刘煜堃、蚂蚁集团高级技术专家肖俊贤三位嘉宾在【云服务器 & 计算服务】专场中共同带来题为《大数据时代,如何基于机密虚拟化技术构建数据安全的“基石”》的主题演讲,从ECS产品安全体系及机密计算介绍、基于机密虚拟机的数据保护解决方案、蚂蚁机密PaaS最佳实践三大角度为大家做了全面的分享。
|
8月前
|
负载均衡 安全 虚拟化
另一种虚拟化平台-NSX DC如何实现Openstack网络与安全
最近这两个月,工作强度陡然提升。前不久为了归纳和总结NSX DC分别与HOST-VM容器和裸金属容器的最佳实践和“特殊部署”,已经起早贪黑了两个多礼拜。因此,公众号的更新频率有所下降。好在功夫不负有心人,届时我也会推出专门的篇幅来介绍云原生场景的技术实现。 在今天的分享中,我将继续上一篇的内容,向大家展示管理员通过Openstack Horizon或者命令行执行配置的时候,NSX DC后端究竟发生了什么变化。
另一种虚拟化平台-NSX DC如何实现Openstack网络与安全
|
8月前
|
存储 安全 SDN
另一种虚拟化平台:Openstack与NSX DC的结合
经过之前的两篇连载(一步步实现SDDC、变形金刚外传),我向各位演示了NSX DC两大产品(NSX-V、NSX-T)如何实现数据中心的网络与安全设施的。
另一种虚拟化平台:Openstack与NSX DC的结合
|
11月前
|
存储 监控 网络安全
【KVM虚拟化】· 虚拟机的冷迁移和热迁移
【KVM虚拟化】· 虚拟机的冷迁移和热迁移
854 0
|
11月前
|
KVM 虚拟化 Windows
【KVM虚拟化】· KVM中的网络
【KVM虚拟化】· KVM中的网络
196 0
|
11月前
|
存储 KVM 文件存储
【KVM虚拟化】· 存储池、存储卷
【KVM虚拟化】· 存储池、存储卷
382 0