ewsd12 发表于 2015-6-1 08:38:07

KVM虚拟化(2)

KVM虚拟化的命令行管理
LVM逻辑卷在虚拟机存储中的应用

#########################################################

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

virsh               //直接进交互模式
virshnodeinfo            //查看KVM节点(服务器)信息
virshlist                  //列出正在运行的虚拟机
virshlist--all            //列出所有虚拟机(包括未启动的)
virshdominfo虚拟机名称          //查看指定虚拟机的信息
virshstart虚拟机名称          //将指定的虚拟机开机
virshreboot虚拟机名称          //将指定的虚拟机重启
virshshutdown虚拟机名称          //将指定的虚拟机正常关机
virshdestroy虚拟机名称          //将指定的虚拟机强制关机(相当于拔电源)
virshautostart虚拟机名称          //将指定的虚拟机设置随KVM自动开机
virshautostart--disable虚拟机名称      //将指定的虚拟机设置不随KVM自动开机


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

1. 为已有的虚拟机改名

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

2)修改 new.xml
# vimnew.xml
<domain type='kvm' id='1'>
<name>rhel6_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 建立新的虚拟机
# virshdefinenew.xml
定义域 rhel6_node1(从 new.xml)

# virshlist--all
Id    名称                         状态
----------------------------------------------------
1   rh6_n1                         启用
-   rhel6_node1                  关闭


4)删除原虚拟机的 XML 描述
# virshdestroyrh6_n1      //强制关机
域 rh6_n1 被删除

# virshundefinerh6_n1      //删除虚拟机定义
域 rh6_n1 已经被取消定义

# virshlist--all          //确认删除结果
Id    名称                         状态
----------------------------------------------------
-   rhel6_node1                  关闭


2. 复制虚拟机

1)导出虚拟机 rhel6_node1 的XML描述信息,保存为 rh6_n2.xml 文件
# virshdumpxmlrhel6_node1>rh6_n2.xml

2)修改 rh6_n2.xml
# vimrh6_n2.xml
<domain type='kvm' id='1'>
<name>rh6_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)复制虚拟机 rhel6_node1 的磁盘文件
# cp-p/data/images/node1.img/data/images/node2.img

4)根据 rh6_n2.xml 建立新的虚拟机
# virshdefinerh6_n2.xml
定义域 rh6_n2(从 rh6_n2.xml)


练习三:访问虚拟机窗口、虚拟机克隆

1. virt-viewer虚拟机名称          //与 virt-manager 管理方式基本一样

2. virt-clone-o模板虚拟机-n新虚拟机名称-f 克隆后的虚拟机磁盘路径



练习四:LVM快照的创建、使用、验证

1. 建立测试LV、格式化、挂载,写入数据
# lvcreate-L200MB-nlvsrcvg_data
# mkfs.ext4/dev/vg_data/lvsrc
# mount/dev/vg_data/lvsrc/mnt/lvsrc
# ddif=/dev/zeroof=/mnt/lvsrc/file1bs=1Mcount=100

2. 建立快照LV、挂载及访问
# lvcreate-L50M-nlvsnap-s/dev/vg_data/lvsrc
# mount/dev/vg_data/lvsnap/mnt/lvsnap
# df-hT|greplvs
/dev/mapper/vg_data-lvsrc   ext4   194M106M   79M58% /mnt/lvsrc
/dev/mapper/vg_data-lvsnapext4   194M106M   79M58% /mnt/lvsnap

3. 快照卷的崩溃验证(可用空间耗尽)、快速重建
# ddif=/dev/zeroof=/mnt/lvsnap/file2bs=1Mcount=60
dd: 正在写入"/mnt/lvsnap/file2": 只读文件系统
.. ..
45703168字节(46 MB)已复制,0.164632 秒,278 MB/秒

Message from syslogd@localhost at Jun 23 18:12:52 ...
kernel:journal commit I/O error                  //快照卷已崩溃

# lvremove/dev/vg_data/lvsnap            //删除崩溃的快照卷

# lvcreate   -L   200M-n   lvsnap   -s   /dev/vg_data/lvsrc
                                    //重建快照卷



练习五:从命令行安创建虚拟机(建模板机)

1. 为虚拟机准备磁盘(逻辑卷)
# lvcreate-L10G-nlv_node1vg_data
.. ..

2. 创建新的虚拟机,并从命令行安装RHEL 6.5系统(PXE方式)
# virt-install \
--name node1--vcpus=1--ram=1024\
--disk path=/dev/vg_data/lv_node1 \
--networknetwork=network1   --pxe

    !!!! 详细可参考 manvirt-install 手册页
    !!!! 对于非PXE安装,应改用 --location=安装源URL

3. 初始化模板虚拟机,关机备用(平时应闲置)
# touch/.unconfigured
.. ..                      //下次开机后会要求重设键盘、时区、root口令、网络等信息

# shutdown-hnow




练习六:利用LVM快照技术快速建新虚拟机

1. 根据模板机的 LV 建立快照卷
# lvcreate-s-n rh6_snap1 -L 10G /dev/vg_data/lv_node1
Logical volume "rh6_snap1" created

2. 导出模板机的XML描述,并修改为新虚拟机的定义(新名称、新UUID、新磁盘设备)
# virshdumpxmlnode1>rh6_snap1.xml
# vim rh6muban.xml
<name>rh6_snap1</name>                  //修改名称
<uuid>a990f28e-4adc-14bc-9fcf-7353877d5c27</uuid>      //修改UUID
<source dev=‘/dev/vg_data/rh6_snap1’/>                  //修改磁盘路径
<mac address='52:54:00:72:bb:cc'/>            //修改网卡MAC地址
.. ..

3. 建立新的虚拟机
# virshdefinerh6_snap1.xml         //导入
定义域 rh6_snap1(从 rh6_snap1.xml)
# virshlist--all            //确认结果
.. ..
-   rh6_snap1                     关闭


#########################################################

页: [1]
查看完整版本: KVM虚拟化(2)