博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给KVM虚拟机增加硬盘
阅读量:2387 次
发布时间:2019-05-10

本文共 11312 字,大约阅读时间需要 37 分钟。

1. host增加物理硬盘并分区

HOST作为KVM的宿主计算机,管理所有GUEST虚拟机。我们通过给HOST增加物理硬盘,然后分给GUEST,从而实现给虚拟机硬盘扩容的效果。

如何给计算机增加物理硬盘并分区,请参考: 文章

查看HOST机的硬盘

~ sudo fdisk -lDisk /dev/sda: 299.4 GB, 299439751168 bytes255 heads, 63 sectors/track, 36404 cylinders, total 584843264 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000efd7c   Device Boot      Start         End      Blocks   Id  System/dev/sda1            2048    97656831    48827392   82  Linux swap / Solaris/dev/sda2        97656832   136718335    19530752   83  Linux/dev/sda3       136718336   214843335    39062500   83  Linux/dev/sda4   *   214843392   215037951       97280   83  LinuxDisk /dev/sdb: 1999.3 GB, 1999307276288 bytes255 heads, 63 sectors/track, 243068 cylinders, total 3904897024 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xf919a976   Device Boot      Start         End      Blocks   Id  System/dev/sdb1            2048  1952448511   976223232    7  HPFS/NTFS/exFAT/dev/sdb2      1952448512  3904897023   976224256    5  Extended/dev/sdb5      1952450560  2267023360   157286400+  83  Linux/dev/sdb6      2267025409  2581596160   157285376   83  Linux/dev/sdb7      2581598209  2896168960   157285376   83  Linux/dev/sdb8      2896171009  3210741760   157285376   83  Linux/dev/sdb9      3210743809  3525314560   157285376   83  Linux/dev/sdb10     3525316609  3904897023   189790207+  83  Linux~ df -hFilesystem      Size  Used Avail Use% Mounted on/dev/sda3        37G  3.4G   32G  10% /udev             24G  4.0K   24G   1% /devtmpfs           9.5G  1.1M  9.5G   1% /runnone            5.0M  8.0K  5.0M   1% /run/locknone             24G  152K   24G   1% /run/shmnone            100M   28K  100M   1% /run/usercgroup           24G     0   24G   0% /sys/fs/cgroup/dev/sda2        19G  3.6G   14G  21% /home/dev/sda4        92M   34M   54M  39% /boot/dev/sdb1       931G  100G  832G  11% /disk/sdb1/dev/sdb6       148G  188M  140G   1% /disk/sdb6

下面将进行两个测试:
通过virsh给guest增加文件硬盘:通过文件硬盘的镜像/disk/sdb6/c1d6.img
通过virsh给guest增加分区硬盘:直接使用分区硬盘/dev/sdb5

2. 通过virsh给guest增加文件硬盘

创建文件硬盘的镜像

~ cd /disk/sdb6/~ sudo qemu-img create -f raw /disk/sdb6/c1d6.img 10GFormatting '/disk/sdb6/c1d6.img', fmt=raw size=10737418240~ ls -l-rw-r--r-- 1 root root 10737418240 Jul  8 16:37 c1d6.imgdrwx------ 2 root root       16384 Jul  8 09:03 lost+found/

通过virsh管理工具加载硬盘

~ sudo virshWelcome to virsh, the virtualization interactive terminal.Type:  'help' for help with commands       'quit' to quit#查看系统内的虚拟机virsh # listId Name State----------------------------------------------------5 server3 running6 server4 running7 d2 running8 r1 running9 server2 running12 c1 running#在这里我们要对c1进行硬盘扩容virsh # edit c1#找到硬盘配置(原来的系统硬盘)
#增加文件硬盘,vdb
#保存退出

重启c1虚拟机

#请使用destroy命令,reboot和shutdown不管用。~ virsh # destroy c1Domain c1 destroyed#list找不到c1 ~ virsh # list Id    Name                           State---------------------------------------------------- 5     server3                        running 6     server4                        running 7     d2                             running 8     r1                             running 9     server2                        running#启动虚拟机c1~ virsh # start c1Domain c1 started#进入虚拟机c1~ console c1

在c1中,进行硬盘查检并分区

~ sudo fdisk -lDisk /dev/vda: 42.9 GB, 42949672960 bytes16 heads, 63 sectors/track, 83220 cylinders, total 83886080 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000516aa   Device Boot      Start         End      Blocks   Id  System/dev/vda1   *        2048      499711      248832   83  Linux/dev/vda2          501758    83884031    41691137    5  Extended/dev/vda5          501760    83884031    41691136   8e  Linux LVMDisk /dev/vdb: 10.7 GB, 10737418240 bytes16 heads, 63 sectors/track, 20805 cylinders, total 20971520 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/vdb doesn't contain a valid partition tableDisk /dev/mapper/u1210-root: 38.4 GB, 38394658816 bytes255 heads, 63 sectors/track, 4667 cylinders, total 74989568 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/mapper/u1210-root doesn't contain a valid partition tableDisk /dev/mapper/u1210-swap_1: 4294 MB, 4294967296 bytes255 heads, 63 sectors/track, 522 cylinders, total 8388608 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/mapper/u1210-swap_1 doesn't contain a valid partition table

/dev/vdb已经被识别,接下来 分区,格式化,挂载,使用

硬盘分区

~ sudo fdisk /dev/vdbCommand (m for help): pDisk /dev/vdb: 161.1 GB, 161061274112 bytes16 heads, 63 sectors/track, 312076 cylinders, total 314572801 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x3b49c6a0   Device Boot      Start         End      Blocks   Id  SystemCommand (m for help): nPartition type:   p   primary (0 primary, 0 extended, 4 free)   e   extendedSelect (default p): pPartition number (1-4, default 1):Using default value 1First sector (2048-314572800, default 2048):Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-314572800, default 314572800):Using default value 314572800Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.#分区生效~ sudo partprobe~ sudo fdisk -lDisk /dev/vdb: 10.7 GB, 10737418240 bytes2 heads, 17 sectors/track, 616809 cylinders, total 20971520 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xf0432cd6   Device Boot      Start         End      Blocks   Id  System/dev/vdb1            2048    20971519    10484736   83  Linux

格式化

~ sudo mkfs -t ext4 /dev/vdb1mke2fs 1.42.5 (29-Jul-2012)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks9830400 inodes, 39321344 blocks1966067 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=42949672961200 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks:        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,        4096000, 7962624, 11239424, 20480000, 23887872Allocating group tables: doneWriting inode tables: doneCreating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: done

挂载

~ sudo mount /dev/vdb1 /home/cos/hadoopb~ df -hFilesystem              Size  Used Avail Use% Mounted on/dev/mapper/u1210-root   36G  1.1G   33G   4% /udev                    2.0G  4.0K  2.0G   1% /devtmpfs                   791M  232K  791M   1% /runnone                    5.0M     0  5.0M   0% /run/locknone                    2.0G     0  2.0G   0% /run/shmnone                    100M     0  100M   0% /run/user/dev/vda1               228M   29M  188M  14% /boot/dev/vdb1               9.9G  151M  9.2G   2% /home/cos/hadoopb

使用
/home/cos/hadoopb的目录,已经挂载到了/dev/vdb1上面,我可以在hadoopb下载做任何的操作。

3. 通过virsh给guest增加分区硬盘

直接使用HOST的分区硬盘/dev/sdb5,做个虚拟机c1的分区

virsh # edit c1#新增新硬盘vbc
virsh # destroy c1Domain c1 destroyedvirsh # start c1Domain c1 startedvirsh # console c1

登陆虚拟c1,查看硬盘信息

sudo fdisk -l[sudo] password for cos:Disk /dev/vda: 42.9 GB, 42949672960 bytes16 heads, 63 sectors/track, 83220 cylinders, total 83886080 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000516aa   Device Boot      Start         End      Blocks   Id  System/dev/vda1   *        2048      499711      248832   83  Linux/dev/vda2          501758    83884031    41691137    5  Extended/dev/vda5          501760    83884031    41691136   8e  Linux LVMDisk /dev/vdb: 10.7 GB, 10737418240 bytes2 heads, 17 sectors/track, 616809 cylinders, total 20971520 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xf0432cd6   Device Boot      Start         End      Blocks   Id  System/dev/vdb1            2048    20971519    10484736   83  LinuxDisk /dev/vdc: 161.1 GB, 161061274112 bytes4 heads, 4 sectors/track, 19660800 cylinders, total 314572801 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x3b49c6a0   Device Boot      Start         End      Blocks   Id  System/dev/vdc1            2048   314572800   157285376+  83  LinuxDisk /dev/mapper/u1210-root: 38.4 GB, 38394658816 bytes255 heads, 63 sectors/track, 4667 cylinders, total 74989568 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/mapper/u1210-root doesn't contain a valid partition tableDisk /dev/mapper/u1210-swap_1: 4294 MB, 4294967296 bytes255 heads, 63 sectors/track, 522 cylinders, total 8388608 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/mapper/u1210-swap_1 doesn't contain a valid partition table

已经被正确识别
Disk /dev/vdc: 161.1 GB, 161061274112 bytes

接下来,可以参考上面类似的过程,分区,格式化,挂载,使用。

我们直接使用硬件分区,比分区的映射文件会更有效果。

kvm 虚拟机的磁盘大小可通过命令:

qemu-img resize filename size 来改,要注意的是resize只支持raw格式的磁盘文件

如果想更改qcow2等格式的磁盘大小,需先用qemu-img convert 转换磁盘格式后才能更改大小;另外,用命令改完大小后需重启kvm虚拟机,系统才能识别新添加的磁盘容量。

                               

1、用qemu-img resize更改磁盘大小 
以xp为例,原来磁盘的大小为100M,更改为250M
[root@kvmserver ]# qemu-img info xp_4_test.disk01
image: xp_4_test.disk01
file format: raw
virtual size: 99M (100000000 bytes)
disk size: 54M
[root@kvmserver]# qemu-img resize xp_4_test.disk01 +150M //更改大小
Image resized.
[root@kvmserver]# qemu-img info xp_4_test.disk01
image: xp_4_test.disk01
file format: raw
virtual size: 250M (262144000 bytes) //可以看到大小已更改为250M
disk size: 54M
2、重启kvm虚拟机
[root@kvmserver ]# virsh shutdown xp_4_test

                                               KVM磁盘性能优化

磁盘性能是虚拟技术中的一个瓶颈,虚拟机由于经过封装以后,磁盘有所下降,尤其要对磁盘性能进行优化。

优化要点:

1、在母机(host)上,设置磁盘调度器为 deadline,有两种方法

– 在启动的时候,加入参数(需要重新启动):

elevator=deadline

– 或者实时调整参数(不需要重新启动,但是下次启动时丢失):

for f in /sys/block/sd*/queue/scheduler; do echo “deadline” > $f; done

2、使用 virtio,一定注意,否则导致磁盘性能严重下降

3、在虚拟机(VM)上,设置磁盘调度器为 noop,有两种方法

– 在启动的时候,加入参数(需要重新启动):

elevator=noop

– 或者实时调整参数(不需要重新启动,但是下次启动时丢失):

for f in /sys/block/sd*/queue/scheduler; do echo “noop” > $f; done

4、尽量使用 LVM 作为虚拟机的磁盘,qcow2会带来额外的负担,从而导致IO性能下降

 5、注意虚拟机内的 virtio驱动程序一定是最新的,特别是windows虚拟机

参考:

http://serverfault.com/questions/360718/kvm-low-io-performance

转载地址:http://klsab.baihongyu.com/

你可能感兴趣的文章
使用syslog-ng 和stunnel 创建集中式安全日志服务器
查看>>
做人道理
查看>>
网友将电视剧潜伏当职场教科书 研究办公室政治
查看>>
graudit
查看>>
使用Hudson和FindBugs进行持续集成和代码检查
查看>>
New Tool: The PenTesters Framework (PTF) Released
查看>>
Detecting and Defending against PowerShell Shells
查看>>
NagVis实物监控工具
查看>>
nginx - low risk webdav destination bug
查看>>
Lessons Learned from Building and Running MHN, the World's Largest Crowdsourced Honeynet
查看>>
Logwatch Linux/Unix系统日志检测软件
查看>>
减少Linux下Squid服务器的TIME_WAIT套接字数量
查看>>
/etc/sudoers中的含义
查看>>
Five must-know open source SDN controllers
查看>>
Finding Bad Guys with 35 million Flows, 2 Analysts, 5 Minutes and 0 Dollars
查看>>
SANS FOR572 Logstash
查看>>
apt成熟度模型
查看>>
Digital Forensics Framework v0.4.3 available
查看>>
linux设置bond网卡绑定
查看>>
Is your .svn showing (like 3300 other sites)?
查看>>