KVM对虚拟机映射scsi盘

浏览:
字体:
发布时间:2013-12-10 00:14:43
来源:
KVM对虚拟机映射scsi盘
 
注:physical machine redhat6.4,但是虚拟机装了个redhat 5.5,在vm上面用lsscsi看不到盘,因此觉得虚拟机装5.5版本太低了,内核不能识别,因此装了个内核版本高点儿redhat6.4来确认这个问题,发现能看到盘了,把我所研究学习的过程share给各位。
 
 
一:修改系统配置的xml文件
 
 
1:具体路径是在:/etc/libvirt/qemu/guest_os.xml(不要手动修改这个文件,修改了你会发现用virsh dumpxml guest_os看到的xml文件还是修改以前的)
 
 
修改的方式有两种:
 
a:添加控制器
 
   随便找个目录,touch tmp.xml,然后编辑这个文件,添加以下内容:
 
<?xml version="1.0"?>
<controller index="bruce" model="virtio-scsi" type="scsi"/>
然后写个小脚本,添加控制器:
 
# for i in {0..3}
> do
> sed "s/bruce/$i/g" /controller.xml > /con.xml
> virsh attach-device johnny_zeng /con.xml --config
> echo "Begin to attach device $i ..."
> done
Device attached successfully
 
 
Begin to attach device 0 ...
Device attached successfully
 
 
Begin to attach device 1 ...
Device attached successfully
 
 
Begin to attach device 2 ...
Device attached successfully
 
 
Begin to attach device 3 ...
b:添加scsi disk
 
    随便找个目录,touch tmp.xml,然后编辑这个文件,添加以下内容:
 
 <disk type="block" device="lun" sgio="unfiltered">
<driver name="qemu" type="raw" cache="none" />
<source dev="/dev/disk/by-path/pci-0000:08:00.0-fc-0x500009780800a124-lun-20" /> 
<target dev="sda" bus="scsi" /> 
<shareable />
<alias name="scsi0-0-0-4" />
<address type="drive" controller="0" bus="0" target="0" unit="5" />
</disk>
 
以上内容按以下方式修改,第一行红色部分内容通过:ls -l /dev/disk/by-path/|grep -v part|grep -i fc 查找,会发现有很多的san 盘。第二部分的内容经过测试,发现只要开头是vdx,sdx,hdx,至于x的内容字母,数字都可以,但是要保证每次dev属性值都不一样。第三个红线部分内容,顾名思义,是一个别名,因此最好是写成scsi+controller-0-0-id方式。第四处红色部分表示,第一个为控制器id(在映射多路径盘的时候需要),第二个为这个盘的id,但是这个控制器的id+盘的id不能与其它盘重合,比如我这个盘加的是控制器1,盘id为1,则表示为1:1,下次不能加同样的控制器为1,盘id为1的属性。
 
修改好了以后,然后virsh attach-device guest_os  /tmp.xml --config添加设备。也可以通过另外一种方式,virsh edit guest_os,然后修改保存,再通过save guest_os /etc/libvirt/qemu/guest_os.xml 保存到系统生效。
 
 
如果你要加入几百个盘的话,这种方式显然不得行,所以,就要写脚本啦:我把我的脚本share一下,其实真的很简单。
 
在根目录下面新建了个模板文件bruce.xml:
 
 
 
<disk type="block" device="lun" sgio="unfiltered">
<driver name="qemu" type="raw" cache="none" />
<source dev="/dev/disk/by-path/kenny" />
<target dev="sdyang" bus="scsi" />
<shareable />
<alias name="scsicontrollers-0-0-number" />
<address type="drive" controller="controllers" bus="0" target="0" unit="number" />
</disk>
然后通过以下脚本添加:
 
#!/bin/sh
 
 
controler=0
count=0
        ls /dev/disk/by-path/|grep -v part|grep fc|while read line
        do
                number=`echo $line|cut -d - -f 6`
                sed "s/kenny/$line/g" bruce.xml | sed "s/yang/$number$controler/g" |sed "s/controllers/$controler/g"|sed "s/number/$number/g" > /yang.xml
                echo "begin to attach device $number to xml file,controler is $controler ..."
                virsh attach-device bruce_yang /yang.xml --config 
                if test $? -eq 1
                then
                        echo "Failed to attach device to xml file ..."
                        exit 1
                fi
                count=`expr $count + 1`
                if test $count -eq 10
                then
                        count=0
                        controler=`expr $controler + 1`
                fi
        done
~                                                                                                                                                                                                   
~                                                           
因为我知道有十个盘,所以判断它等于10,计算方法很简单 ls /dev/disk/by-path/|grep -v part|grep fc|wc -l ,将计算的结果除以paths,也就是多少条路径。
 
 
二:登录vm,确认scsi盘
 
# lsscsi 
[2:0:0:1]    disk    EMC      SYMMETRIX        5874  /dev/sdd 
[2:0:0:4]    disk    EMC      SYMMETRIX        5874  /dev/sde 
[2:0:0:5]    disk    EMC      SYMMETRIX        5874  /dev/sdf 
[3:0:0:15]   disk    EMC      SYMMETRIX        5874  /dev/sda 
[4:0:0:3]    disk    EMC      SYMMETRIX        5874  /dev/sdb 
[5:0:0:1]    disk    EMC      SYMMETRIX        5874  /dev/sdc 
 
>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();