CentOS7下批量克隆低配kvm虚拟机,并修改虚拟机配置成高配,来完成快速克隆。

说明一下

我在另一片文章你面简单介绍了在CentOS7下虚拟机创建和配置,现在面临的问题是怎样在尽可能短的时间内克隆出大量虚拟机,我的想法是尽量减小安装时的大小,然后批量克隆,然后修改每台虚拟机的配置,包括磁盘、内核、内存、交换空间等这样会比直接可能虚拟机快很多。

虚拟机的迁移

迁移会遇到很多问题,大部分都是不同Centos环境下kvm版本不同的原因,我个人建议是不要跨版本迁移。

# 将需要迁移的虚拟机的配置文件考下来
vrish shutdown 虚拟机名                 
# 迁移前最好关机,因为很多你之前对虚拟机修改的配置都必须通过关机生效
​
vrish dumpxml 虚拟机名 > 虚拟机名.xml   # 将虚拟机的配置导入.xml文件
​
。。。。
# 将虚拟机的配置文件 .xml 和磁盘文件 .raw 移动到需要迁移的地方
​
virsh define 虚拟机名.xml       # 注册虚拟机,注意磁盘文件的位置放在
vrish start 虚拟机名            # 可以启动了,看看是否能正常使用

如果环境正常是可以启动的,可能出的问题大多是磁盘问题,可以根据错误用 vim 直接修改xxx.xml配置文件

虚拟机克隆

vrish list --all    # 查看虚拟机状态
 Id    Name                           State
----------------------------------------------------
 4     CentOS-7_2                     running
 5     CentOS-7_1                     running
 -     CentOS-7_0                     shut off
virt-clone -o 【目标虚拟机】 -n 【克隆虚拟机】 -f 【克隆虚拟机磁盘】   # 克隆语法

虚拟机配置更改

内核、内存的更改

# 内存和内核的更改只需要修改配置文件就行了
[root@h97 bashshell~] cat centos7-7.xml
......
<memory unit='KiB'>内存</memory>
<currentMemory unit='KiB'>当前内存</currentMemory>
<vcpu placement='static'>内核</vcpu>
......
# 修改上面所示的位置就行了

磁盘的更改

# 可以创建一个新磁盘挂载也可以给原来的磁盘扩容# 创建磁盘
qemu-img create -f raw 磁盘名.raw 磁盘大小
# 修改配置文件
[root@h97 bashshell~] cat centos7-7.xml
......
<disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/home/tangshibo/bashshell/centos7-7.raw'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
# 在这儿增加一个和上面相似的标签
<disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/home/tangshibo/bashshell/centos7-7.raw'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x06' function='0x0'/>
</disk>
......
# 需要注意的是 dev 名称和 bus 要不同并且不能用其他设备如 cdrom 用的 bus 编号,仔细对照配置文件设置编号。# 扩容原来的磁盘
qemu-img resize 磁盘名 +10G    # 增加 10G
qemu-img resize 磁盘名 10G     # 增加到 10G

不管是增加源磁盘和扩容磁盘都要进行分区、格式化、挂载

# 我采用的直接扩大原磁盘,所以磁盘分区如下
[root@localhost ~]# fdisk -l        
# 找到分区
​
磁盘 /dev/vda:14.0 GB, 13958643712 字节,27262976 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ddb65
​
   设备 Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200     6291455     2096128   8e  Linux LVM
​
磁盘 /dev/mapper/centos-root:1820 MB, 1820327936 字节,3555328 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
​
​
磁盘 /dev/mapper/centos-swap:322 MB, 322961408 字节,630784 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
​
# 如上图 /dev/vda 的总空间明显大于已用空间,肯定还有一个没有分区的新盘
[root@localhost ~]# fdisk /dev/vda
欢迎使用 fdisk (util-linux 2.23.2)。
​
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
​
命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)          # 主分区
   e   extended                                      # 扩展分区,可以继续分为逻辑分区
Select (default p): p                               # 我选主分区,主要是方便
分区号 (3,4,默认 3):                                 # 回车
起始 扇区 (6291456-27262975,默认为 6291456):           # 回车
将使用默认值 6291456
Last 扇区, +扇区 or +size{K,M,G} (6291456-27262975,默认为 27262975):# 回车
将使用默认值 27262975
分区 3 已设置为 Linux 类型,大小设为 10 GiB
​
命令(输入 m 获取帮助):w                             # 保存并退出
The partition table has been altered!
​
Calling ioctl() to re-read partition table.
​
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
​
[root@localhost ~]# reboot 
# 需要重启# 格式化,上面新磁盘是 /dev/vda3
​
[root@localhost ~]# mkfs -t ext4 /dev/vda3
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
​
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 
​
# 挂载
[root@localhost ~]# mount /dev/vda3 /home/
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root  1.7G  896M  831M   52% /
devtmpfs                 234M     0  234M    0% /dev
tmpfs                    245M     0  245M    0% /dev/shm
tmpfs                    245M  4.4M  240M    2% /run
tmpfs                    245M     0  245M    0% /sys/fs/cgroup
/dev/vda1               1014M  125M  890M   13% /boot
tmpfs                     49M     0   49M    0% /run/user/0
/dev/vda3                9.8G   37M  9.2G    1% /home
​
# 上面的是临时挂载,要永久挂载,需要修改如下文件
echo "磁盘名 挂载目录 文件格式 defaults 0 0" >> /etc/fstab

交换空间的更改

# 查看空间
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            488          92         278           4         117         356
Swap:           307           0         307# 复制交换空间的格式文件,bs*count为总容量,bs是块,count是块数
[root@localhost ~]# dd if=/dev/zero of=/home/swap bs=1MB count=717
记录了717+0 的读入
记录了717+0 的写出
717000000字节(717 MB)已复制,0.850916 秒,843 MB/秒
​
# 格式化为交换空间格式
[root@localhost ~]# mkswap /home/swap 
正在设置交换空间版本 1,大小 = 700188 KiB
无标签,UUID=0a921818-4fed-447e-a75a-843a59c313d2
​
# 挂载交换空间
[root@localhost ~]# swapon /home/swap 
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            488          93           6           4         388         355
Swap:           991           0         991# 但是重启虚拟机后又消失了,和磁盘一样需要修改配置文件
echo "交换空间文件名称 swap swap default 0 0" >> /etc/fstab

这样就OK了,如果能够在被克隆的镜像中添加启动自动查询磁盘、格式化磁盘和挂载磁盘的脚本,然后用脚本批量克隆修改配置,那就完美了,只要镜像做的小,那么批量克隆并制作大量大容量的虚拟机其实可以达到很快的速度。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值