umount.nfs device busy day virsh extend diskSpace, attachDisk
KVM中linux虚拟机的硬盘添加方法
最近虚拟机中运行的东西比较多,很多。而刚启动的时候虚拟机分配的磁盘比较少,随着日志还有平时的上传文件的积累,磁盘空间报警了。网上查了下资料,自己也做了下实验。总结下给虚拟机增加磁盘的一些硬盘空间的方法。
对于sda/vda等格式的硬盘
环境:centos 6.1
虚拟机的属性:domainname test
Disk path /var/lib/libvirt/images/test.img
硬盘分区:
[root@localhost ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 6.8G 3.2G 3.3G 50% /
tmpfs tmpfs 499M 0 499M 0% /dev/shm
需要添加硬盘空间。
方法1
思路,既然是少一块硬盘,那么我们就直接给虚拟机加一块硬盘就好了,然后直接挂载到根分区的一个目录下面。这样我根分区的硬盘空间就扩展了。
解决方法1
A,生成一块新的硬盘
使用virt-manager很容易,直接在虚拟的属性中点击“添加硬件”----“storage”选择多大的空间,驱动类型,缓存模式。然后点击完成。注意,有些硬盘是支持热插拔的,有些不支持。除了IDE格式的硬盘外,其他的都支持热插拔,这就意味着,如果添加的是IDE的硬盘的话,需要对虚拟机进行重启,使他识别新添加的硬盘。
如果采用virsh命令添加的话。采用命令
#qemu-img create -f raw test_add.img 10G
//说明,生成一块新的raw格式的空盘
#virsh attach-disk test /var/lib/libvirtd/images/test_add.img vdb —cache none
或者#virsh edit test 在xml中的disk后面添加如下几行。
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/var/lib/libvirt/images/test_add.img'/>
<target dev='vdb' bus='virtio'/>
</disk>
B,在虚拟机中对硬盘进行格式化
登录到虚拟机中,首先查看是否能新识别硬盘
#fdisk -l 查看是否回显示新添加的硬盘/dev/vdb
然后,对vdb进行格式化,
#mkfs.ext4 /dev/vdb
接下来,新建一个目录用来挂载新的硬盘
#mkdir /test
#mount /dev/vdb /test
最后,将该挂载添加到开机启动中
#blkid /dev/vdb //获取硬盘的UUID
/dev/vdb: UUID="19fc1d1d-7891-4e22-99ef-ea3e08a61840" TYPE="ext4"
#vim /etc/fstab //添加开机加载,在最后一行加入
UUID=19fc1d1d-7891-4e22-99ef-ea3e08a61840 /test ext4 defaults 1 2
到此方法一,添加完毕
方法2,直接拉升分区
思 路,采用挂载的方法是而外添加了一块盘,有没有一种方法可以直接对硬盘进行拉伸。qemu-img中提供了一个resize的命令,但是该命令只是单纯的 简单了拉升或者缩小了一个raw的img镜像大小,对于其中的分区却不能进行修改。我需要对其中的的分区进行拓展。很碰巧红帽子提供这种插件可以时间。此方法是采用红帽子自带的插件virt-resize进行拓展。该命令首先是获取原来的分区信息,还 有其他文件信息。然后对新的镜像进行重新分区、格式化。最后拷贝原镜像中的文件到新文件系统中,再用新拓展的镜像替换原有镜像。因为实际采用copy的方 式,所以他花的时间比较长,如果是一个大镜像不建议使用此方法
具体解决方案。
前提安装libguestfs-tools工具包。关闭虚拟机
#yum -y install libguestfs-tools
A,新建一个大镜像
#qemu-img create -f raw test_extend.img 15G
注意,这里的img大小是你需要拓展的总大小
B,使用virt-resize进行拉升分区
#virt-resize —expand /dev/vda1 /var/lib/libvirt/images/test.img /var/lib/libvirt/images/test_new.img
注意,此时间很长,请耐心等待
C.使用新扩展的镜像代替原镜像
#mv /var/lib/libvirt/images/test_new.img /var/lib/libvirt/images/test.img
D,启动虚拟机
#virsh start test
拓展完成,
virt-resize的优势:能对虚拟机中的特定的分区进行拓展。并且能够拓展windows镜像。不需要登录到虚拟机里面进行任何操作。
缺点:拓展的时候需要关机。对于大的镜像,拓展的时间比较长。
对于LVM格式的虚拟机
如果你的硬盘格式支持LVM。那么你的硬盘拓展将容易许多,LVM支持硬盘的在线扩容。相当方便。
方法步骤:
#lvcreate -L 40G -n lv_vm_test1 VolGroup
#virsh attach-disk test /dev/mapper/VolGroup/lv_vm_test vdb
注意,有可能碰到权限问题。请先修改/dev/mapper/VolGroup/lv_vm_test的权限,是虚拟机可以挂载。
进入虚拟机的操作:
#pvcreate /dev/vdb
#vgextend VolGroup /dev/vdb
#vgs
#lvextend -l +100%FREE /dev/VolGroup/lv_root
#resize2fs -p /dev/VolGroup/lv_root
优势:拓展时间很快,支持动态扩展。
缺点,不适合window的拓展。
sudo umount /data1/logs/web1logs
umount.nfs: /data1/logs/web1logs: device is busy
umount.nfs: /data1/logs/web1logs: device is busy
方法一:
fuser -m -v /data/
用户 进程号 权限 命令
/data/: root 2798 ..c.. bash
root 2996 ..c.. su
如上所示,有两个进程占用了,将其kill掉,再重新取消挂载。
kill -9 2798 2996
umount /data1/logs/web1logs
方法二:
umount -l /data1/logs/web1logs
方法三:
fuser -km /data1/logs/web1logs
umount.nfs device busy day virsh extend diskSpace, attachDisk的更多相关文章
- umount nfs文件系统 显示 umount.nfs: device is busy
网上的方法一般都是 fuser -m /nfs 查出进程号,然后杀死进程号,或者fuser -km /nfs直接杀死,我试了下都不行 解决方法: 对于nfs文件系统来说,umount -l /nfs ...
- umount.nfs: device is busy解决办法
fuser -km /app/nfs/ https://blog.csdn.net/x_i_y_u_e/article/details/42914817
- 解决umount.nfs: /data: device is busy 问题
有时候我们需要umount某个挂载目录时会遇到如下问题: [root@localhost /]# umount /data/ umount.nfs: /data: device is busy 通过这 ...
- 解决umount: /home: device is busy
取消挂载/home时出现umount: /home: device is busy, 原因是因为有程序在使用/home目录,我们可以使用fuser查看那些程序的进程, 然后 ...
- umount: /home: device is busy
转自:umount: /home: device is busy 取消挂载/home时出现umount: /home: device is busy,原因是因为有程序在使用/home目录,我们可以使用 ...
- centos重启报错Umounting file systems:umount:/opt:device is busy
系统重启报错: Umounting file systems:umount:/opt:device is busy 只能硬关机,回想一下最近刚安装了nod32 for linux x64的杀毒软件,开 ...
- Linux umount的device is busy问题
现象: [root@dbserver ~]# df -h文件系统 容量 已用 可用 已用%% 挂载点/dev/vda1 9.9G 3.9G 5.6G 41% /tmpfs 3.9G 100K 3.9G ...
- 解决类似umount target is busy挂载盘卸载不掉问题
问题描述: Linux下挂载后的分区或者磁盘某些时候需要umount的时候出现类似“umount: /mnt: target is busy.”等字样,或者“umount: /xxx: device ...
- AIX 环境下遇到Device Busy问题
IBM AIX v5.3操作系统环境下在对网络或网卡进行操作过程中经常遇到"Device Busy"而终止操作例如:#rmdev -l ent1遇到如下返回信息Method err ...
随机推荐
- Binder的使用(跨进程——AIDL,非跨进程)
一.Binder类 1.作用:Binder是客户端与服务器端的通信的媒介(连接各种Manager的桥梁),客户端通过Binder对象获取服务器端提供的数据 (为什么要用Binder来提供数据呢,服务器 ...
- CSS自学笔记(9):CSS拓展(二)
CSS图片 当一个网页上有一张或多张图片,而且这些图片的尺寸比较大时,为了是网页布局更紧凑合理,我们可以将这些图片放到一个图片库里,可以有效的防止图片过大可能会对网页布局造成的不良影响. 通过CSS我 ...
- 960 grid 分析
960 网格系统的构造如下:页面总宽度 960px12 栏布局, 每栏 60px每栏两边保留 10px 的外边距, 相当于 20px 的槽内容区域总宽度是 940px 960 布局无疑是非常好的网格系 ...
- VB.NET让webbrowser控件中JS脚本错误最新方法(2013-09-16)
最近也是在项目中遇到了webbrowser控件中想关闭JS脚本错误窗口的问题,所以经过多次测试,终于用一段高效实用的代码完美解决webbrowser控件中JS脚本错误窗口关闭的问题. 通过创建一个子线 ...
- 为什么国外程序员爱用苹果 Mac 电脑?
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒.那么为什么专业人士也对 Mac 情有独钟呢?从个人 ...
- Android studio gradle配置!!!【转】
转自:http://www.open-open.com/lib/view/open1415793464648.html Gradle 基本概念 首先我们学习几个gradle 的脚本语法,掌握了这几个语 ...
- 使用JS控制struts的日期控件datetimepicker
功能需求:页面主要有两个日历框,一个是当前日期,一个是去年同期,要求当用户改变当前日期时,同步修改去年同期为当前日期-1年. 当时刚接触到需求的第一时间想到的就是为< sx:datetimepi ...
- linux 学习之九、Linux 磁盘与文件系统管理(3)
原文地址:http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem.php#filesys 创建大文件以制作 loop 装置文件!(练习非常有用) ...
- linux内核源码阅读之facebook硬盘加速flashcache之六
其实到目前为止,如果对读流程已经能轻松地看懂了,那么写流程不需要太多脑细胞.我觉得再写下去没有太大的必要了,后面想想为了保持flashcache完整性,还是写出来吧.接着到写流程: 1530stati ...
- javaScript 工作必知(八) 属性的特性 值、写、枚举、可配置
属性的特性 每个对象都拥有属性,属性具有哪些特性呢? 1.属性具有值. 2.属性是否是可写的. 3.是否是可枚举的. 4.是否是可配置的. " ...