virsh 怎么刷新linux查看挂载的设备备

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--99ef-ea3e08a61840" TYPE="ext4"  #vim /etc/fstab&&&&&&&&&&&& //添加开机加载,在最后一行加入  UUID=19fc1d1d--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的拓展。
微信公众号
TechTarget
TechTarget中国
查看更多评论
敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。
大家都知道,Linux虚拟机无法利用Hyper-V针对Windows虚拟机提供的众多特性。幸运的是,情况已经发生变化,Hyper-V现在能够为Linux提供更多的支持。
软件桥接是任何基于内核的虚拟机环境的必备要素,其工作原理与以太网交换机连接类似,实现虚拟机与外部网络接口的连接。
Linux在企业数据中心已经盛行多年。LAMP服务、Web服务器、代理服务器、防火墙和负载平衡器,只是Linux为基本操作系统提供的几个用例。
Linux在企业数据中心已经盛行多年。LAMP服务、Web服务器、代理服务器、防火墙和负载平衡器,只是Linux为基本操作系统提供的几个用例。
VDI灾难恢复需要考虑额外事项。是否有足够的网络带宽处理恢复迁移过程?哪些重要的应用绝对需要快速恢复让用户访问?在本期TechTarget中国VDI灾难恢复手册中,我们会介绍虚拟桌面灾难恢复技术,让你从规划到备份桌面都得心应手。
VMware于7月13日发布了vSphere 4.1,这是对于VMware vSphere平台的首次升级。VMware vSphere 4.1提供了几个方面的技术改进,包括新的I/O控制和内存压缩功能。此外,VMware将其vMotion热迁移功能添加到vSphere 4.1的Standard与Enterprise Plus中,当然,价格相应随之提升。发布vSphere 4.1的同时,VMware也更改了vCenter管理产品线的价格与许可模式,使用per-VM模式。VMware也重新命名了今年初从EMC购得的Ionix管理产品。在本期VMware vSphere 4.1技术手册中,我们将详细介绍这些发布,分析vSphere 4.1的功能特点,并提供升级到vSphere 4.1的技巧。
虚拟化有助于提高效率、灾难恢复、存储等等,其众多优势也有降低成本的效益。许可、整合和节电是虚拟化实现节省成本的三个主要方面。本期《打造低成本虚拟化》技术手册将从许可、整合和电源管理三方面帮助你真正地降低对虚拟化的投入成本。
在之前的专题“”以及“”中,我们学习了VDI的定义以及实施流程。在本专题中,我们主要学习VDI的使用情况,需要注意的事项及技巧。
TechTarget
企业级IT网站群
TechTarget中国 版权所有
All Rights Reserved, Copyright
TechTarget中国 版权所有
All Rights Reserved, Copyright1694人阅读
OPSTACK(12)
虚拟化(3)
python(3)
在Libvirt里处理
尝试了以下有几种方法,为虚拟机加载光盘文件:
1.使用ide方式挂载:
xml格式如下:
type='block' device='cdrom'&
name='qemu' type='raw'/&
dev='{iso_path}'/&
dev='hda'/&
2.使用scsi方式挂载:
xml格式如下:
type='block' device='cdrom'&
name='qemu' type='raw'/&
dev='/var/lib/nova/instances/virtio-win-0.1-100.iso'/&
dev='sda'/&
以上两种方法的区别就在于设备的驱动类型,使用hd×盘符挂载,挂载之后的设备会默认认为是ide设备,而使用sd×盘符挂载,会默认认为是scsi设备。
由于有些windows镜像缺少scsi驱动无法识别使用sd×盘符挂载的光驱设备,所以选择了hd×盘符来挂载光驱设备。
然后ide同样存在问题,ide设备是不支持热拔插的:
virsh attach-disk {instance_name} {iso_path} hda
error: Failed to attach disk
error: Operation not supported: disk bus 'ide' cannot be hotplugged.
研究了一番发现如果给这个光驱设备写一个空的source_path,挂载时只要替换这个source_path的值,它就不会认为这是一个拔插动作。
virsh domblklist {instance_name}
------------------------------------------------
{volume_path}
{volume_path}
virsh attach-disk {instance_name} {iso_path} hdb --sourcetype block
--driver qemu --subdriver raw
--type cdrom
Disk attached successfully
virsh domblklist {instance_name}
------------------------------------------------
{volume_path}
{volume_path}
{iso_path}
在nova里处理
在nova里要做的就是给虚拟机添加一个光驱设备,并给予这个光驱设备一个空的默认路径。虚拟机磁盘设备的xml加工是在nova.virt.libvirt.driver.py中完成的。
磁盘设备的xml类是nova.virt.libvirt.config.py中的LibvirtConfigGuestDisk类,可以根据它的属性来创建一个新的实例。
这里加入了一个判定条件用于更灵活地控制这个设备是否开启,判定的依据是flavor的extra_specs中的hw_set_cdrom属性。
在nova.virt.libvirt.driver.py的get_guest_storage_config函数中加入以下代码(注意,盘符必须为hda):
for vol in block_device_mapping:
connection_info = vol['connection_info']
vol_dev = block_device.prepend_dev(vol['mount_device'])
info = disk_mapping[vol_dev]
cfg = self.volume_driver_method('connect_volume',
connection_info,
devices.append(cfg)
if inst_type['extra_specs'].get('hw_set_cdrom', False):
("** setting cdrom **")
cd_cfg = vconfig.LibvirtConfigGuestDisk()
cd_cfg.driver_name = 'qemu'
cd_cfg.source_device = 'cdrom'
cd_cfg.driver_format = 'raw'
cd_cfg.driver_cache = 'none'
cd_cfg.target_bus = 'ide'
cd_cfg.target_dev = 'hda'
cd_cfg.root_name = 'disk'
cd_cfg.source_type = 'block'
cd_cfg.source_path = ''
devices.append(cd_cfg)
挂载操作不用多说,方法多种多样的……
windows 2003:
windows 2008:
windows 2003:
windows 2008:
给光驱更新一个空的source_path就可以了:
virsh domblklist {instance_name}
------------------------------------------------
{volume_path}
{volume_path}
{iso_path}
virsh attach-disk {instance_name} "" hda --sourcetype block
--driver qemu --subdriver raw
--type cdrom
Disk attached successfully
virsh domblklist {instance_name}
------------------------------------------------
{volume_path}
{volume_path}
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:21772次
排名:千里之外
原创:17篇
(2)(3)(1)(1)(2)(1)(2)(6)通过virsh修改虚拟机密码
时间: 00:00:17
&&&& 阅读:174
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&如果在openstack平台上创建虚拟机时要传入密码,则安装cloud-init即可。若想要通过virsh命令上修改虚拟机的密码则需要安装qemu-guest-agent安装以及配置方法: 若修改密码:1. 关闭/重启虚拟机# virsh shutdown/reboot domain --mode=agent复制代码virsh shutdown/reboot &默认的方式是使用ACPI(--mode=acpi,可省略),没有安装ACPI 的Linux虚拟机和Windows 虚拟机并不响应virsh shutdown/reboot domain 指令。使用--mode=agent方式,QEMU guest agent 可以保证虚拟机完成关机/重启动作。2. 稳定的快照# virsh snapshot-create-as domain --disk-only --quiesce复制代码通过qga,虚拟机在创建快照之前会先flush I/O,保证磁盘内容的高稳定性。3. 冻结/恢复/整理文件系统# virsh domfsfreeze/domfsthaw/domfstrim domain复制代码4. 查询虚拟机IP# virsh domifaddr domain --source agent复制代码(注:qga 2.1.0 版本不支持该指令)5. 显示虚拟机挂载的文件系统# virsh domfsinfo domain复制代码(注:qga2.1.0 版本不支持该指令)TBD6. 查询/设置虚拟机系统时间# virsh domtime domain --pretty & & & & & #查询虚拟机时间# virsh domtime domain --now & & & & & & #设置虚拟机时间为宿主机当前时间复制代码设置虚拟机时间有问题,解决方法还在探索中。。。7. 设置虚拟机用户密码# virsh set-user-password &domain& &user& &password&复制代码该指令在qga 2.1.0 和 2.3.0 版本中都无法运行,估计RedHat 7 中的qga 包版本比现有的centos 版本的更新一些。本文出自 “” 博客,请务必保留此出处标签:&&&&&&&&&&&&&&&原文:http://shyln./0529
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!

我要回帖

更多关于 virsh 挂载磁盘 的文章

 

随机推荐