设为首页 收藏本站
查看: 6882|回复: 0

[经验分享] 实战KVM|kvm安装|创建linux|控制台|克隆

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-22 09:13:33 | 显示全部楼层 |阅读模式
一、准备工作
1、环境概述
1
2
3
4
真实物理主机Windows7(64bit)
底层虚拟化是VMware WorkStaion 10.0
VMware WorkStation上安装的是CentOS6.4(64bit)
真实主机和VMware都要启动虚拟化技术,否则后续的实验没法完成



2、修改内核的模式为兼容内核
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[iyunv@kvm ~]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=1    #此处默认是0,手动修改为1,为兼容模式
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-358.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=VolGroup/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    initrd /initramfs-2.6.32-358.el6.x86_64.img



3、关闭本地selinux防火墙

1
2
3
4
5
6
7
8
9
10
11
12
[iyunv@kvm ~]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled    #默认是enforcing,手动修改为disabeld
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted



4、关闭本地iptables防火墙
1
2
3
4
5
6
7
[iyunv@kvm ~]# /etc/init.d/iptables stop
iptables:清除防火墙规则:                                 [确定]
iptables:将链设置为政策 ACCEPT:nat mangle filter         [确定]
iptables:正在卸载模块:                                   [确定]
[iyunv@kvm ~]# chkconfig iptables off
[iyunv@kvm ~]# /etc/init.d/iptables status
iptables:未运行防火墙。



5、重新启动服务器,使配置生效
1
[iyunv@kvm ~]# reboot



二、虚拟机环境配置

1、启动VMware的虚拟化选项参数
wKioL1STgGeSYCdAAAJEkvC-KkA599.jpg
2、查看是否支持虚拟化
1
2
[iyunv@kvm ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo
注意:如果查询的结果中包含有vmx,那么就可以证明服务器是支持虚拟化的



wKiom1STgJDB8bsbAAPI8r-EmCc356.jpg
三、安装配置kvm
1、安装kvm软件包
1
[iyunv@kvm ~]# yum install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v



2、安装kvm虚拟化管理工具包

1
[iyunv@kvm ~]# yum install libguestfs-tools



3、查看虚拟化环境
(1)查看虚拟机环境
1
2
3
4
5
6
7
8
9
[iyunv@kvm ~]# virsh -c qemu:///system list
错误:Failed to connect socket to '/var/run/libvirt/libvirt-sock': 没有那个文件或目录
错误:连接到管理程序失败
[iyunv@kvm ~]# /etc/init.d/libvirtd restart
正在关闭 libvirtd 守护进程:                               [失败]
启动 libvirtd 守护进程:                                   [确定]
[iyunv@kvm ~]# virsh -c qemu:///system list
Id    名称                         状态
----------------------------------------------------



(2)检测kvm模块是否安装
1
2
3
[iyunv@kvm ~]# lsmod |grep kvm
kvm_intel              53484  0
kvm                   316506  1 kvm_intel



(3)查看虚拟工具版本

1
2
3
4
5
6
7
[iyunv@kvm ~]# virsh --version
0.10.2
[iyunv@kvm ~]# virt-install --version
0.600.0
[iyunv@kvm ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/
[iyunv@kvm ~]# qemu-kvm --version
QEMU PC emulator version 0.12.1 (qemu-kvm-0.12.1.2-2.448.el6_6), Copyright (c) 2003-2008 Fabrice Bellard



4、手动配置虚拟网桥

(1)桥接模式的概述
其实我们在虚拟机搭建的时候,我们最终关心的网卡是: eth0, br0, vnet0,vnet1…
其中eth0是我们服务器原来的物理网卡,而br0是我们虚拟出来的网桥设备,而vnetXXX就是桥接映射到虚拟机里面用到的网卡。当配置完毕之后,我们使用ifconfig命令查看起来的话,会发现eth0是没有IP地址,而br0仿佛是虚拟出来的一个原来eth0的访问接口,它具有IP地址,可以代替原来的eth0被访问。而vnetXX的地址可以在建立虚拟机之后在虚拟机里面配置,桥接后可以被外部访问。注意:将已有的物理网卡添加到网桥,此时物理网卡eth0工作于混杂模式,所以不需要IP地址,因为网桥是工作在链路层的。br0就提供了IP地址,用来模拟原来的物理网卡的访问接口.
关于混杂模式:
根据以太网的原理,包是在整个子网里面广播发送的,当网卡发现这个数据帧不是发给自己的也不是广播包的时候,就直接把它丢掉,而不传送到上层内核去处理;而当网卡处于混杂模式的时候,网卡就不会丢掉帧,而是全部向上提交到内核,让内核处理这些帧结构。通常的,混杂模式使用来进行网络调试的,不是正常的工作状态
(2)创建配置br0网桥

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[iyunv@kvm ~]# cd /etc/sysconfig/network-scripts/
[iyunv@kvm network-scripts]# cp ifcfg-eth1 ifcfg-br0
[iyunv@kvm network-scripts]# more ifcfg-eth1
DEVICE=eth1
HWADDR=00:0C:29:59:7f:21
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
[iyunv@kvm network-scripts]# more ifcfg-br0
DEVICE=br0
HWADDR=00:0C:29:59:7f:21
TYPE=Bridge
UUID=739689d7-857c-4a62-9ede-bd6f18cde92a
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.180
NETMASK=255.255.255.0
GATEWAY=192.168.1.1



(3)重新启动network

1
2
3
4
5
6
7
[iyunv@kvm ~]# service network restart
正在关闭接口 br0:                                         [确定]
正在关闭接口 eth1:                                        [确定]
关闭环回接口:                                             [确定]
弹出环回接口:                                             [确定]
弹出界面 eth1:                                            [确定]
弹出界面 br0:                                             [确定]



(4)查看网络配置信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[iyunv@kvm ~]# ifconfig
br0       Link encap:Ethernet  HWaddr 00:0C:29:59:7F:21  
          inet addr:192.168.1.180  Bcast:192.168.1.255  Mask:255.255.255.0    #获取到地址
          inet6 addr: fe80::20c:29ff:fe59:7f21/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3170100 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1731782 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:4503127474 (4.1 GiB)  TX bytes:132209121 (126.0 MiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:59:7F:21  
          inet6 addr: fe80::20c:29ff:fe59:7f21/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3233002 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1781748 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4626338976 (4.3 GiB)  TX bytes:136271300 (129.9 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:19:DC:45  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

vnet0     Link encap:Ethernet  HWaddr FE:54:00:20:9C:91  
          inet6 addr: fe80::fc54:ff:fe20:9c91/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20 errors:0 dropped:0 overruns:0 frame:0
          TX packets:644 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:3365 (3.2 KiB)  TX bytes:61657 (60.2 KiB)



(5)查看网桥

1
2
3
[iyunv@kvm ~]# brctl show
bridge name    bridge id      STP enabled    interfaces
br0     8000.000c29597f21   no      eth1



四、kvm安装CentOS 6.x系统

1、上传CentOS6.4镜像到本地服务器中
1
2
3
[iyunv@kvm ~]# mkdir /iso
[iyunv@kvm ~]# ls /iso/
CentOS-6.4-x86_64-bin-DVD1.iso



2、创建虚拟机硬盘
1
2
3
4
5
[iyunv@kvm ~]# mkdir /kvm
[iyunv@kvm ~]# qemu-img create -f qcow2 /kvm/kvmtest.img 4G
Formatting '/kvm/kvmtest.img', fmt=qcow2 size=4294967296 encryption=off cluster_size=65536
[iyunv@kvm ~]# ls /kvm/
kvmtest.img



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[iyunv@kvm ~]# qemu-img --help
qemu-img version 0.12.1, Copyright (c) 2004-2008 Fabrice Bellard
usage: qemu-img command [command options]
QEMU disk image utility

Command syntax:
  check [-f fmt] [--output=ofmt] [-r [leaks | all]] [-T src_cache] filename
  create [-f fmt] [-o options] filename [size]
  commit [-f fmt] [-t cache] filename
  compare [-f fmt] [-F fmt] [-T src_cache] [-p] [-s] filename1 filename2
  convert [-c] [-p] [-f fmt] [-t cache] [-T src_cache] [-O output_fmt] [-o options] [-S sparse_size] filename [filename2 [...]] output_filename
  info [-f fmt] [--output=ofmt] filename
  map [-f fmt] [--output=ofmt] filename
  snapshot [-l | -a snapshot | -c snapshot | -d snapshot] filename
  rebase [-f fmt] [-t cache] [-T src_cache] [-p] [-u] -b backing_file [-F backing_fmt] filename
  resize filename [+ | -]size
Command parameters:
  'filename' is a disk image filename
  'fmt' is the disk image format. It is guessed automatically in most cases
  'cache' is the cache mode used to write the output disk image, the valid
    options are: 'none', 'writeback' (default), 'writethrough' and 'unsafe'
  'src_cache' in contrast is the cache mode used to read input disk images
  'size' is the disk image size in bytes. Optional suffixes
    'k' or 'K' (kilobyte, 1024), 'M' (megabyte, 1024k), 'G' (gigabyte, 1024M)
    and T (terabyte, 1024G) are supported. 'b' is ignored.



3、创建虚拟机
1
2
3
4
5
6
7
8
[iyunv@kvm ~]# virt-install --name kvmtest01 --boot network,cdrom,menu=on --ram 1024 --vcpus=1 --os-type=linux --accelerate -c /iso/CentOS-6.4-x86_64-bin-DVD1.iso --disk path=/kvm/kvmtest.img,size=4,format=qcow2,bus=virtio --bridge=br0,model=virtio --vnc --vncport=5991 --vnclisten=0.0.0.0

开始安装......
创建域......                                                                                                |    0 B     00:01     
无法打开显示:
运行 'virt-viewer --help' 来查看可用命令行选项的完整列表
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。



4、开始通过VNC进行连接,进行安装过程

(1)查看kvm监听的端口

1
2
[iyunv@kvm ~]# netstat -tnlp |grep kvm
tcp        0      0 0.0.0.0:5991                0.0.0.0:*                   LISTEN      16291/qemu-kvm



(2)VNC建立连接方式
wKioL1STkwrTRK2mAAGR9i9b5hs043.jpg
wKiom1STkt6guCtkAAGk_-GUrH0227.jpg
(3)然后就属于CentOS系统的安装了,想必大家也都非常熟悉了,在这里我只说明个人感觉重点的部分
系统分区选择手动分区
wKiom1STlUyzeE8BAAHTfWk9NZU801.jpg
选择最小化安装 wKiom1STldaBCMR0AAEx6huDQkY640.jpg
wKioL1STlv-hN9JLAAHOnw4C3wk354.jpg
记录一下:第一次安装的时候在这里出现了问题,kvm创建CentOS系统后,用vnc连接是成功的,但是键盘无法输入命令,其实就是键盘不能操作虚拟机,于是我就就把虚拟机重新了,重启之后又生了更奇怪的问题,ifconfig后只有lo网卡地址,其它的地址都没有了。问题出在网卡配置文件,上面的我已经修改过了,这个问题已经解决了。
5、登陆操作系统查看
1
2
3
4
[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
2     kvmtest01                      running



wKiom1STrRmC6l9uAASxKjZSN8E315.jpg
五、kvm虚拟机的日常管理和配置

1、查看kvm虚拟机配置文件以及运行状态
(1)kvm虚拟机默认配置文件
1
2
3
4
5
[iyunv@kvm ~]# cd /etc/libvirt/qemu/
[iyunv@kvm qemu]# ll
总用量 8
-rw------- 1 root root 2456 12月 19 12:16 kvmtest01.xml
drwx------ 3 root root 4096 12月 19 11:56 networks



(2)virsh命令帮助
1
2
3
4
5
6
7
8
9
[iyunv@kvm qemu]# virsh --help
或者
[iyunv@kvm qemu]# virsh
欢迎使用 virsh,虚拟化的交互式终端。

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

virsh # help



(3)查看kvm虚拟机的状态
1
2
3
4
[iyunv@kvm qemu]# virsh list --all
Id    名称                         状态
----------------------------------------------------
2     kvmtest01                      running



2、kvm虚拟机关机或断电
我们在开启与关闭KVM虚拟机时,一般是通过start、shutdown、reboot等命令来进行。
但是有时候我们会发现在使用shutdown、reboot命令进行关闭和重启虚拟机时,虚拟机没有任何反应,该怎么运行还是怎么运行,这个时候我们可能就会使用destroy暴力关机。
为什么会出现这种现象?
经过查询相关资料发现,原来这几个命令是向KVM虚拟机发送一个ACPI指令,来实现相关对虚拟机的操作。而默认安装KVM虚拟机时,特别是linux虚拟机,没有安装ACPI服务,因此导致虚拟机没有对这些命令做出相应的动作。
解决办法:
如果要实现这些指令的功能,那么就需要在KVM的虚拟机中,安装ACPI服务,然后启动该服务即可。
KVM虚拟机中目前windows系统默认ACPI服务已经安装并启动,所以我们只需要对Linux进行安装ACPI服务即可。
(1)安装acpid服务
1
[iyunv@kvm ~]# yum install acpid



(2)将acpid服务设置开机自启动
1
2
3
4
5
6
7
[iyunv@kvm ~]# /etc/init.d/acpid status
acpid 已停
[iyunv@kvm ~]# /etc/init.d/acpid start
启动 acpi 守护进程:                                       [确定]
[iyunv@kvm ~]# chkconfig acpid on
[iyunv@kvm ~]# chkconfig --list acpid
acpid             0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭



(3)关机
1
2
3
4
5
6
7
8
默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务。在安装KVM linux虚拟机必须配置此服务。
[iyunv@kvm ~]# virsh shutdown kvmtest01
域 kvmtest01 被关闭

[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
2     kvmtest01                      running



(4)强制关闭电源
1
2
3
4
5
6
7
[iyunv@kvm ~]# virsh destroy kvmtest01
域 kvmtest01 被删除

[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
-     kvmtest01                      关闭



3、通过配置文件启动虚拟机
1
2
3
4
5
6
7
[iyunv@kvm ~]# virsh create /etc/libvirt/qemu/kvmtest01.xml
域 kvmtest01 被创建(从 /etc/libvirt/qemu/kvmtest01.xml)

[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
3     kvmtest01                      running



4、kvm虚拟机开机的两种方式

1
2
3
4
5
6
7
8
9
10
11
12
13
第一种:
[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
-     kvmtest01                      关闭

[iyunv@kvm ~]# virsh start kvmtest01
域 kvmtest01 已开始

[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
4     kvmtest01                      running



1
2
3
4
5
6
7
8
第二种:通过配置文件启动虚拟机
[iyunv@kvm ~]# virsh create /etc/libvirt/qemu/kvmtest01.xml
域 kvmtest01 被创建(从 /etc/libvirt/qemu/kvmtest01.xml)

[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
3     kvmtest01                      running



5、配置开机自启动虚拟机
1
2
3
4
5
6
7
8
9
10
11
[iyunv@kvm ~]# ll /etc/libvirt/qemu
总用量 8
-rw------- 1 root root 2456 12月 19 12:16 kvmtest01.xml
drwx------ 3 root root 4096 12月 19 11:56 networks
[iyunv@kvm ~]# virsh autostart kvmtest01
域 kvmtest01标记为自动开始
[iyunv@kvm ~]# ll /etc/libvirt/qemu
总用量 12
drwxr-xr-x 2 root root 4096 12月 19 13:07 autostart      #开机自启动文件
-rw------- 1 root root 2456 12月 19 12:16 kvmtest01.xml
drwx------ 3 root root 4096 12月 19 11:56 networks



6、导出kvm虚拟机配置文件
1
2
3
4
5
6
7
8
注释:kvm虚拟机配置文件可以通过这种方式进行备份
[iyunv@kvm ~]# virsh dumpxml kvmtest01 > /etc/libvirt/qemu/kvmtest02.xml
[iyunv@kvm ~]# ll /etc/libvirt/qemu/
总用量 16
drwxr-xr-x 2 root root 4096 12月 19 13:07 autostart
-rw------- 1 root root 2456 12月 19 12:16 kvmtest01.xml
-rw-r--r-- 1 root root 2642 12月 19 13:22 kvmtest02.xml
drwx------ 3 root root 4096 12月 19 11:56 networks



7、添加删除kvm虚拟机
(1)删除kvm虚拟机
说明:该命令只是删除了可vmtest01的配置文件,并不是删除虚拟磁盘文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
说明:该命令只是删除了可vmtest01的配置文件,并不是删除虚拟磁盘文件
[iyunv@kvm ~]# ll /etc/libvirt/qemu
总用量 16
drwxr-xr-x 2 root root 4096 12月 19 13:07 autostart
-rw------- 1 root root 2456 12月 19 12:16 kvmtest01.xml  #kvmtest01虚拟机的配置文件
-rw-r--r-- 1 root root 2642 12月 19 13:22 kvmtest02.xml  #kvmtest01虚拟机的备份配置文件
drwx------ 3 root root 4096 12月 19 11:56 networks
[iyunv@kvm ~]# virsh destroy kvmtest01
域 kvmtest01 被删除

[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
-     kvmtest01                      关闭

[iyunv@kvm ~]# virsh undefine kvmtest01
域 kvmtest01 已经被取消定义
[iyunv@kvm ~]# ll /etc/libvirt/qemu
总用量 12
drwxr-xr-x 2 root root 4096 12月 19 13:29 autostart
-rw-r--r-- 1 root root 2642 12月 19 13:22 kvmtest02.xml  #发现虚拟机的配置文件被删除了
drwx------ 3 root root 4096 12月 19 11:56 networks

[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------



(2)重新定义虚拟机配置文件
通过导出备份的配置文件恢复原KVM虚拟机的定义,并重新定义虚拟机
1
2
3
4
5
6
7
[iyunv@kvm ~]# virsh define /etc/libvirt/qemu/kvmtest01.xml
定义域 kvmtest01(从 /etc/libvirt/qemu/kvmtest01.xml)

[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
-     kvmtest01                      关闭



(3)启动kvmtest01虚拟机
1
2
3
4
5
6
7
[iyunv@kvm ~]# virsh start kvmtest01
域 kvmtest01 已开始

[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
5     kvmtest01                      running



8、kvm的挂起和恢复命令
(1)挂起

1
2
3
4
[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
6     kvmtest01                      暂停



(2)恢复

1
2
3
4
[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
6     kvmtest01                      running



六、kvm虚拟机控制台登陆配置
说明:以下所有的操作都是在kvm虚拟主机上操作的也就是kvmtest01上操作的
wKiom1ST4QGDxNKOAAOecDT0lAM448.jpg
1、添加ttyS0的许可,允许root登陆
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[iyunv@localhost ~]# echo "ttyS0" >> /etc/securetty
[iyunv@localhost ~]# more /etc/securetty
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
ttyS0    #添加ttyS0



2、修改grub.conf配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[iyunv@localhost ~]# vim /etc/grub.conf
注释添加console=ttyS0
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/vda3
#          initrd /initrd-[generic-]version.img
#boot=/dev/vda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-358.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=7b02e71c-06b4-4f5f-af83-dfe20e93fddf rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=u
s rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet console=ttyS0    #添加console=ttyS0
    initrd /initramfs-2.6.32-358.el6.x86_64.img



3、修改/etc/inittab文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[iyunv@localhost ~]# echo "S0:12345:respawn:/sbin/agetty ttyS0 115200" >> /etc/inittab
[iyunv@localhost ~]# more /etc/inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
S0:12345:respawn:/sbin/agetty ttyS0 115200



5、重启kvm虚拟主机

1
[iyunv@localhost ~]# reboot



6、在控制端kvm服务器上操作
wKioL1ST4gaDbRQRAAYXBL2x60I854.jpg wKioL1ST4nPDxFYxAATNLJJc2M0342.jpg
七、kvm虚拟机克隆
kvm虚拟机的克隆分为两种情况
1、kvm主机本机虚拟机直接克隆
(1)虚拟机kvmtest01的磁盘文件路径
1
2
[iyunv@kvm ~]# ll /kvm/kvmtest.img
-rw-r--r-- 1 root root 1115422720 12月 19 14:25 /kvm/kvmtest.img



(2)虚拟机的名称

1
2
3
4
[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
1     kvmtest01                      running



(3)开始克隆

1
2
[iyunv@localhost ~]# virt-clone -o kvmtest01 -n kvmtest02 -f /kvm/kvmtest02.img
正在克隆 kvmtest.img                             51% [=====================                     ] 6.9 MB/s | 544 MB     01:15 ETA



(4)克隆完成

1
2
3
4
5
6
7
8
9
[iyunv@kvm ~]# virt-clone -o kvmtest01 -n kvmtest02 -f /kvm/kvmtest02.img
ERROR    必须暂停或者关闭有要克隆设备的域。
[iyunv@kvm ~]# virsh destroy kvmtest01
域 kvmtest01 被删除

[iyunv@kvm ~]# virt-clone -o kvmtest01 -n kvmtest02 -f /kvm/kvmtest02.img
正在克隆 kvmtest.img                                                                                       | 1.0 GB     01:18     

Clone 'kvmtest02' created successfully.



1
2
3
4
5
6
7
参数解释
-o ORIGINAL_GUEST, --original=ORIGINAL_GUEST
    原始客体的名称;必须为关闭或者暂停状态
-n NEW_NAME, --name=NEW_NAME
    新客户端的名称
-f NEW_DISKFILE, --file=NEW_DISKFILE
    作为新客户端磁盘映像的新文件



(5)启动kvm虚拟机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Clone 'kvmtest02' created successfully.
[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
-     kvmtest01                      关闭
-     kvmtest02                      关闭

[iyunv@kvm ~]# virsh start kvmtest02
域 kvmtest02 已开始

[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
2     kvmtest02                      running
-     kvmtest01                      关闭



(6)kvm控制台登陆kvmtest02虚拟机
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
[iyunv@kvm ~]# virsh console kvmtest02
连接到域 kvmtest02
Escape character is ^]



        Welcome to CentOS
正在启动 udev:[确定]
设立主机名 localhost.localdomain: [确定]
检查文件系统
Checking all file systems.
[/sbin/fsck.ext4 (1) -- /] fsck.ext4 -a /dev/vda3
/dev/vda3: clean, 33318/118320 files, 231356/472832 blocks
[/sbin/fsck.ext4 (1) -- /boot] fsck.ext4 -a /dev/vda1
/dev/vda1: 正在修复日志
/dev/vda1: clean, 38/51200 files, 32302/204800 blocks
[确定]
将根文件系统重新挂载成读写模式: [确定]
挂载本地文件系统: [确定]
启用/etc/fstab中的交换空间: [确定]
进入非互动式启动
ip6tables:应用防火墙规则:[确定]
iptables:应用防火墙规则:[确定]
弹出环回接口: [确定]
弹出界面 eth0: 设备 eth0 似乎不存在, 初始化操作将被延迟。
[失败]
正在启动 auditd:[确定]
启动系统日志记录器:[确定]
启动系统消息总线:[确定]
挂载其它文件系统: [确定]
重新激发失败的 udev 事件[确定]
添加 udev 持久规则[确定]
正在启动 sshd:[确定]
启动 postfix: [确定]
正在启动 crond:[确定]

CentOS release 6.4 (Final)
Kernel 2.6.32-358.el6.x86_64 on an x86_64

localhost.localdomain login: root
Password:
Last login: Fri Dec 19 16:23:37 on ttyS0
[iyunv@localhost ~]# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)



wKioL1ST5ingNpK9AAWhMF3c2Fw226.jpg
2、通过拷贝配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移)
(1)导出kvm虚拟机配置文件
1
2
3
4
5
6
7
8
[iyunv@kvm ~]# virsh dumpxml kvmtest01 > /etc/libvirt/qemu/kvmtest03.xml
[iyunv@kvm ~]# ll /etc/libvirt/qemu
总用量 20
drwxr-xr-x 2 root root 4096 12月 19 13:29 autostart
-rw------- 1 root root 2482 12月 19 13:33 kvmtest01.xml
-rw------- 1 root root 2484 12月 19 16:31 kvmtest02.xml
-rw-r--r-- 1 root root 2255 12月 19 16:50 kvmtest03.xml
drwx------ 3 root root 4096 12月 19 11:56 networks



(2)拷贝虚拟机磁盘文件
1
2
3
4
5
6
[iyunv@kvm ~]# cp /kvm/kvmtest.img /kvm/kvmtest03.img
[iyunv@kvm ~]# ll /kvm/
总用量 3184084
-rwxr-xr-x 1 qemu qemu 1115488256 12月 19 16:52 kvmtest02.img
-rw-r--r-- 1 root root 1115488256 12月 19 16:52 kvmtest03.img
-rw-r--r-- 1 root root 1115488256 12月 19 16:31 kvmtest.img



(3)修改配置文件
1
[iyunv@kvm ~]# vim /etc/libvirt/qemu/kvmtest03.xml



wKiom1ST6FDSwAHKAAQVSY4KCkg992.jpg
wKioL1ST6PWQUNEhAAIW82z5cQU746.jpg
(4)定义新虚拟机配置文件
1
2
[iyunv@kvm ~]# virsh define /etc/libvirt/qemu/kvmtest03.xml
定义域 kvmtest03(从 /etc/libvirt/qemu/kvmtest03.xml)



(5)启动虚拟机
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
2     kvmtest02                      running
-     kvmtest01                      关闭
-     kvmtest03                      关闭

[iyunv@kvm ~]# virsh start kvmtest03
域 kvmtest03 已开始

[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
2     kvmtest02                      running
3     kvmtest03                      running
-     kvmtest01                      关闭



(6)通过控制台登陆测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[iyunv@kvm ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
2     kvmtest02                      running
3     kvmtest03                      running
-     kvmtest01                      关闭

[iyunv@kvm ~]# virsh console kvmtest03
连接到域 kvmtest02
Escape character is ^]

[iyunv@localhost ~]# ifconfig
eth1      Link encap:Ethernet  HWaddr 52:54:00:A3:DC:89  
          inet addr:192.168.1.187  Bcast:255.255.255.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:fea3:dc89/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2039 errors:0 dropped:0 overruns:0 frame:0
          TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:209331 (204.4 KiB)  TX bytes:9961 (9.7 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)



注意:KVM克隆的时候需要注意几点
1、编辑配置文件的时候,尽量不要使用vim/vi,因为vim/vi修改的配置当时不会生效,所以要使用KVM特定的编辑命令 virsh edit kvmtest01
2、由于使用的虚拟机,克隆后的虚拟机是只有lo回环地址,没有物理网卡,需要我们手动修改
1
2
[iyunv@kvm ~]# ll /etc/udev/rules.d/70-persistent-net.rules
-rw-r--r-- 1 root root 420 12月 18 21:22 /etc/udev/rules.d/70-persistent-net.rules



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-38366-1-1.html 上篇帖子: KVM创建虚机遇到的自trouble 下篇帖子: 实战KVM|镜像格式转换|快照|在线扩展磁盘 linux 控制台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表