这个比较有意思,同事要存放 2TB 的数据,但是系统是 1.7TB 的 4 块 600G 盘组成的 Raid10。
很明显盘空间不够了,去库房找两块 10TB 的大盘组成 Raid1 给他用好了。
问题来了,系统是 KVM 虚机,怎样把这个 10TB 的大盘给送进虚机呢?
这里面还真有要注意的问题:
Important
Guest virtual machines should not be given write access to whole disks or block devices (for example, /dev/sdb). Guest virtual machines with access to whole block devices may be able to modify volume labels, which can be used to compromise the host physical machine system. Use partitions (for example, /dev/sdb1) or LVM volumes to prevent this issue.
注意上面的说明,是不建议将整个硬盘送进虚机里面去的,建议是送分区进去,避免会写坏整个盘。
所以先把盘的分区做好,格式化并挂载,以 /dev/sdb 为例
1parted -s /dev/sdb mklabel gpt mkpart primary 0% 100%
2mkfs.xfs /dev/sdb1
3mount -t xfs /dev/sdb1 /mnt/sdb1
然后到实体机的磁盘目录
1# cd /dev/disk/
2# ls
3by-id by-path by-uuid
4
5# cd by-id
6# ll
7total 0
8lrwxrwxrwx 1 root root 9 3月 26 2018 scsi-36b083fe0e4f71a001c36c36716543d4d -> ../../sda
9lrwxrwxrwx 1 root root 10 3月 26 2018 scsi-36b083fe0e4f71a001c36c36716543d4d-part1 -> ../../sda1
10lrwxrwxrwx 1 root root 10 3月 26 2018 scsi-36b083fe0e4f71a001c36c36716543d4d-part2 -> ../../sda2
11lrwxrwxrwx 1 root root 10 3月 26 2018 scsi-36b083fe0e4f71a001c36c36716543d4d-part3 -> ../../sda3
12lrwxrwxrwx 1 root root 9 11月 18 16:02 scsi-36b083fe0e4f71a002928bf63ef284827 -> ../../sdb
13lrwxrwxrwx 1 root root 10 11月 18 16:24 scsi-36b083fe0e4f71a002928bf63ef284827-part1 -> ../../sdb1
14lrwxrwxrwx 1 root root 9 3月 26 2018 wwn-0x6b083fe0e4f71a001c36c36716543d4d -> ../../sda
15lrwxrwxrwx 1 root root 10 3月 26 2018 wwn-0x6b083fe0e4f71a001c36c36716543d4d-part1 -> ../../sda1
16lrwxrwxrwx 1 root root 10 3月 26 2018 wwn-0x6b083fe0e4f71a001c36c36716543d4d-part2 -> ../../sda2
17lrwxrwxrwx 1 root root 10 3月 26 2018 wwn-0x6b083fe0e4f71a001c36c36716543d4d-part3 -> ../../sda3
18lrwxrwxrwx 1 root root 9 11月 18 16:02 wwn-0x6b083fe0e4f71a002928bf63ef284827 -> ../../sdb
19lrwxrwxrwx 1 root root 10 11月 18 16:24 wwn-0x6b083fe0e4f71a002928bf63ef284827-part1 -> ../../sdb1
看中间一行,scsi-36b083fe0e4f71a002928bf63ef284827-part1 指向 /dev/sdb1,记录下来
然后 virsh-edit 编辑 KVM 虚机文件,增加硬盘部分:
1 <disk type='block' device='disk'>
2 <driver name='qemu' type='raw'/>
3 <source dev='/dev/disk/by-id/scsi-36b083fe0e4f71a002928bf63ef284827-part1'/>
4 <target dev='vda' bus='virtio'/>
5 </disk>
注:上面我们是使用了 by-id,当然也可以使用 by-path 和 by-uuid 来指定源盘
重启虚机并进入查看,我们能看到这块盘盘符是 /dev/vda
1fdisk -l
2
3Disk /dev/vda: 11755.9 GB, 11755860262912 bytes, 22960664576 sectors
4Units = sectors of 1 * 512 = 512 bytes
5Sector size (logical/physical): 512 bytes / 512 bytes
6I/O size (minimum/optimal): 512 bytes / 512 bytes
接下来就比较怪异了,这个盘分明没有分区,我们却可以直接 mount
1mount -t xfs /dev/vda /material
然后 df -h 再看
能认出来,正常使用就行了。
非常古怪是吧。
大家还要注意实体机的挂载路径是 /mnt/sdb1,虚机内的挂载路径是 /material,这两个路径都是指向同一块盘,可以共通。