绿联云&极空间虚拟机直通硬盘
1、前言
最近收到了一些小伙伴的需求,希望绿联云和极空间的虚拟机可以直通硬盘,因为当前绿联云和极空间只能使用一个盘或者只能选择M2来作为虚拟机存储盘,或多或少的有一点不那么方便,所以老k本期教程就教大家如何将我们NAS中闲置的硬盘直通给虚拟机来使用。
PS:本教程部分操作步骤和iSCSI教程有重合,看到熟悉的步骤不要惊讶(跟着我上个iSCSI教程操作过的小伙伴可以再看下本篇第3和第4章节,可以备份数据后,对之前的iSCSI挂载做下优化)。


2、前期准备
2.1、进入SSH root用户下
依然是按照我之前的教程,进入ssh 的root用户下。

2.2、找到未使用状态盘的设备路径
直通不必多说,必然是需要当前状态为未使用的硬盘,如果当前所有盘都已使用,可以备份数据后删除存储池,或者重置存储,回到未使用状态。

ssh中输入lsblk查看,下图sda分了两个区,我们先找到他的大存储分区(看SIZE列的大小),比如这里就是sda2,如果这个大分区及其子分区的后面没有创建挂载点(看MOUNTPOINTS列有没有挂载路径),则sda就是未被使用的硬盘设备,其设备路径就是/dev/sda,其他比如nvme0n1的大分区都创建了一个或多个挂载点,这种就是已经创建了存储池的盘,至于nvme1n1(6800以上使用m2做系统盘的机型,名称可能会根据你插入m2的数量变化)或者mmcblk0(老绿联云,极空间,4800等使用emmc的机型)这种创建了p1,p2,p3,p4...的,这个是系统盘,千万,千万,千万不要动。

3、创建逻辑卷
现在直接使用你自己找到的设备路径去进行虚拟机挂载虽然也可以,但是机器重启时因为上电和启动顺序不同,这个盘名也可能会变,从而导致虚拟机启动失败甚至影响其他盘数据的安全,所以需要先创建一个名称不变的逻辑卷,直接命令行执行fdisk /dev/sda(大家注意!后续所有命令中/dev/sda需要替换成你自己实际的),我们会进入fdisk磁盘工具中,先输入d(表示我们要删除分区),再输入2(表示删除第2个分区,也就是sda2),再输入w(保存操作并退出fdisk工具,如果上面步骤有输入错了的,这里输入q,表示直接退出,不保存操作),继续重复上述操作,直到将所有分区都给删除。

再使用lsblk看下,可以看到现在sda下,已经没有任何分区了。

输入以下命令,再次提醒下,后面的所有/dev/sda要替换成你自己的,进入gdisk磁盘管理工具,先输入x回车,进入高级模式,再输入z回车清理GPT信息,这里需要两次输入y来确认清理和重建GPT信息。
gdisk /dev/sda

接下来依次输入以下命令,并输入一次y进行逻辑卷的创建,创建完成后,可以lsblk看下是否和我这一样。
pvcreate /dev/sda
vgcreate koryking_vg /dev/sda
lvcreate -l 100%FREE -n koryking_lv koryking_vg

到设备目录下,也可以看到我们创建的逻辑卷对应的物理设备路径为/dev/koryking_vg/koryking_lv,如果之前做过iscsi操作的小伙伴可以通过这个逻辑卷设备路径来进行挂载,就可以避免因设备重启sda变成sdb的问题了。

4、开机激活逻辑卷
4.1、绿联云自动激活
逻辑卷创建完成后,我们还需要配置个一次性任务,在每次重启时激活下我们创建的逻辑卷,执行以下命令,创建并编辑lvm-activate.service文件。
vi /etc/systemd/system/lvm-activate.service

进入vi编辑器页面后,在键盘英文环境下输入 i ,进入编辑模式,将以下内容复制粘贴进去。
[Unit] Description=Activate LVM Volume Groups
Before=local-fs.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/vgchange -ay
RemainAfterExit=true
[Install]
WantedBy=multi-user.target

确认内容无误,则按下键盘的esc键退出编辑模式,再在英文输入环境下输入 :wq 回车,保存并退出文件。

执行以下命令,应用这个服务,这样以后每次开机时,就会激活逻辑卷了。
systemctl enable lvm-activate.service

4.2、极空间手动激活
极空间没法通过服务自动进行激活(或者是我没找对方法),只能每次重启后手动到ssh root用户下执行以下命令进行手动激活。
vgchange -ay

5、直通到虚拟机
这里有一点要提前说明下,如果当前的虚拟机配置还需要调整请在接下来的操作之前进行调整(比如修改cpu,内存,开机启动等等),否则进行硬盘直通后,可能无法再通过客户端的虚拟机编辑来进行调整了。
确定配置无误后,先将对应要直通硬盘的虚拟机关机,再回到ssh root用户下输入以下命令进入到虚拟机配置文件目录,再通过grep -rl 虚拟机名称来找到虚拟机对应的配置文件名。
cd /etc/libvirt/qemu/ grep -rl 虚拟机名称

输入vi 文件名,进入文件编辑模式。

进入后在键盘英文环境下按下键盘 i 键进入编辑模式,使用上下键,找到disk配置所在的地方,添加如下内容,这里注意,如果配置文件中已经有vda,那target中的dev就要从vdb开始,如果已经有了vdb,那就要从vdc开始,以此类推,另外内容对齐格式要和我截图中保持一致。

添加完成后,先按下键盘esc键退出编辑模式,再在英文输入法环境下输入 :wq 回车保存并退出,如果过程有哪里改错了,可以输入 q!回车直接退出文件不保存,再重新进入vi进行编辑。

文件修改完成后,输入以下命令,进行虚拟机配置更新。
virsh define 虚拟机配置文件名

这时候启动虚拟机,就可以查看对应的磁盘信息了。

6、总结
现在的NAS性能越来越强,虚拟机的实用性也越来越高了,而直通对于爱折腾虚拟机的人来说一直都是一个永恒的话题,硬盘直通可以说是其中最简单的一个了,也希望各家NAS后面能在客户端尽可能的适配一些虚拟机的高端玩法,比如显卡虚拟化,外接显卡直通等等功能,这些自己折腾真的太费劲了。
最后,各位兄弟姐妹别忘了点赞,收藏,回复,我们下期再见。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

koryking
校验提示文案
还是手机好玩
楼主,这一句打错了,[Unit] 后面的内容会换行,不然会报错:Failed to enable unit: File lvm-activate.service: Bad message
评论区里面老哥的问题就是这么产生的
校验提示文案
蓝色泡泡龙
校验提示文案
风月噬魂
校验提示文案
ppM4i
校验提示文案
ppM4i
校验提示文案
没事找事啊
校验提示文案
西山散人
校验提示文案
灵KOYB
校验提示文案
hxooohx
校验提示文案
值友2060360045
校验提示文案
值友7038694491
校验提示文案
还是手机好玩
楼主,这一句打错了,[Unit] 后面的内容会换行,不然会报错:Failed to enable unit: File lvm-activate.service: Bad message
评论区里面老哥的问题就是这么产生的
校验提示文案
西山散人
校验提示文案
值友7038694491
校验提示文案
没事找事啊
校验提示文案
值友2060360045
校验提示文案
ppM4i
校验提示文案
ppM4i
校验提示文案
hxooohx
校验提示文案
灵KOYB
校验提示文案
风月噬魂
校验提示文案
koryking
校验提示文案
蓝色泡泡龙
校验提示文案