Proxmox VE(PVE)添加nfs/smb/iscsi/NTFS做储存
PVE识别储存,无非就是通过lvm和目录。
iscsi磁盘,挂载系统之后,创建lvm,然后pve面板添加就行,或者直接创建分区,然后挂载到一个目录下,再去pve面板添加这个目录就ok。
同理smb/nfs,也就是挂载成一个目录!然后添加。
一:配置iscsi
1.1查看iqn
在shell里,输入
1 |
<span class="token function">cat</span> /etc/iscsi/initiatorname.iscsi |
即可看到iqn。比如我这里的是 iqn.1993-08.org.debian:01:ace95f49189b
![f4e13b93032659bda1d0a5e35d4cc122](https://flybace.com/wp-content/uploads/2022/09/f4e13b93032659bda1d0a5e35d4cc122.jpg)
1.2 在iscsi服务器上,映射磁盘
每种服务器都不一样,我这里用的server2016,如果用专有的存储服务器,直接进控制台设置就行.
2020.4.20补充:最好不使用chap映射,如果要使用chap,只能在shell里挂载,不能使用GUI-web挂载。
![4d42854298a40f6d204587efbe9b5e84](https://flybace.com/wp-content/uploads/2022/09/4d42854298a40f6d204587efbe9b5e84.jpg)
1.3在pve里添加iscsi磁盘
在服务端设置好了,就可以在pve里设置。
选中【数据中心】——【储存】——【添加iscsi】
![f4ecb98f9dd30fa0dc35e4dc354f9b73](https://flybace.com/wp-content/uploads/2022/09/f4ecb98f9dd30fa0dc35e4dc354f9b73.jpg)
![b220a5d863c66376f1e5b0c0259c41ea](https://flybace.com/wp-content/uploads/2022/09/b220a5d863c66376f1e5b0c0259c41ea.jpg)
这里有3个值必须填写
ID: ==>就是这个磁盘的id,随意填写,不过需要字母
portal: ==> iscsi服务器的地址
target: ==>在输入以上2个信息后,iscsi会自动搜索服务器存在的target,这里选择自己需要的target
节点:选择使用刚才查找iqn的节点
直接使用LUN 不要勾选!lun就是直接作为虚拟机磁盘使用
填好之后,点击添加,即可看到储存里有个iscsi了,但是不能用
![7092b5a8e6c8e9afb1e89585ac1d55b1](https://flybace.com/wp-content/uploads/2022/09/7092b5a8e6c8e9afb1e89585ac1d55b1.jpg)
1.4,创建iscsi磁盘分区
在挂载iscsi的节点shell里
输入
1 |
<span class="token function">fdisk</span> -l |
可以看到很多磁盘,找到一个新的磁盘
![62bb36a3c8267ea757348f1296219b27](https://flybace.com/wp-content/uploads/2022/09/62bb36a3c8267ea757348f1296219b27.jpg)
这里开始新建磁盘
1 |
<span class="token function">fdisk</span> /dev/sdc |
![c24b606eb1b09480ee8c2a70f3fb402a](https://flybace.com/wp-content/uploads/2022/09/c24b606eb1b09480ee8c2a70f3fb402a.jpg)
1.5 使用LVM挂载iscsi
可以不使用lvm,使用普通的分区,等下介绍,看1.7。LVM好扩容,但是不支持
![56a8f476d85e58a3aa34110b403e5bc8](https://flybace.com/wp-content/uploads/2022/09/56a8f476d85e58a3aa34110b403e5bc8.jpg)
具体的细节如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Welcome to fdisk<span class="token punctuation">(</span>util-linux <span class="token number">2.25</span>.2<span class="token punctuation">)</span>. Changes will remainin memory only, <span class="token keyword">until</span> you decide to <span class="token function">write</span> them. Be careful beforeusing the <span class="token function">write</span> command. Command <span class="token punctuation">(</span>m forhelp<span class="token punctuation">)</span>:g <span class="token punctuation">(</span>建立GPT分区表<span class="token punctuation">)</span> ………… Command <span class="token punctuation">(</span>m forhelp<span class="token punctuation">)</span>:n <span class="token punctuation">(</span>建立一个新的分区,输入分区号、起始结束扇区等<span class="token punctuation">)</span> ………… Command <span class="token punctuation">(</span>m forhelp<span class="token punctuation">)</span>:t <span class="token punctuation">(</span>改变分区类型31<span class="token punctuation">)</span> Selected partition1 Partition type<span class="token punctuation">(</span>type L to list all types<span class="token punctuation">)</span>:31 <span class="token punctuation">(</span>分区1的类型改变为Linux LVM<span class="token punctuation">)</span> Command<span class="token punctuation">(</span>m <span class="token keyword">for</span><span class="token builtin class-name">help</span><span class="token punctuation">)</span>: w <span class="token punctuation">(</span>写入磁盘并退出fdisk<span class="token punctuation">)</span> |
再次在终端输入fdisk -l,可以查看磁盘已经分好区了
![32ed5e80fb40277cc0f0dea2b999a7f2](https://flybace.com/wp-content/uploads/2022/09/32ed5e80fb40277cc0f0dea2b999a7f2.jpg)
然后创建lvm
1 2 |
pvcreate /dev/sdc1 创建pv vgcreate iscsi1 /dev/sdc1 创建一个名为iscsi1的vg |
![3d3a7ba86d2879670b31475282e62e0f](https://flybace.com/wp-content/uploads/2022/09/3d3a7ba86d2879670b31475282e62e0f.jpg)
1.6,PVE面板添加LVM
找到数据中心-储存,点添加lvm
![f9f2878f6e6ec41c6134cd5ea422aa90](https://flybace.com/wp-content/uploads/2022/09/f9f2878f6e6ec41c6134cd5ea422aa90.jpg)
![839a56886a986d986e9fd0909bc1d95b](https://flybace.com/wp-content/uploads/2022/09/839a56886a986d986e9fd0909bc1d95b.jpg)
这里ID,自己填,方便记忆,卷组填 选择刚才创建的pv iscsi1。勾选共享的,然后添加。在pve节点中,就可以看到这个lvm了,内容也有了
![39130168a397006b8849009af2cb7e18](https://flybace.com/wp-content/uploads/2022/09/39130168a397006b8849009af2cb7e18.jpg)
1.7,使用EXT4挂载iscsi。
注1:这节原理就是挂载iscsi磁盘到一个文件夹下,然后通过pve挂载目录,但是我发现有一个缺陷就是不能开机挂载。可能我技术不行,lvm到是可以开机自动挂载。
注2:按照我发表的另一篇文章 Proxmox VE磁盘/目录详解,并且安装第二个硬盘,修改ISO/虚拟机存放位置(挂载第二张磁盘)的操作,理论上也同样使用于iscsi。就是挂载iscsi磁盘之后,进入pve节点——磁盘,可以看到磁盘,并且初始化,但是我这篇文章在撰稿时,识别不了。百思不得其解,于是乎有了下面的手动挂载磁盘。导致,开机不能自动挂载。坑!
我这里又分配了一个20G的硬盘,来做实验
![f257fb965c0aa685835bbfb84dfb22f5](https://flybace.com/wp-content/uploads/2022/09/f257fb965c0aa685835bbfb84dfb22f5.jpg)
首先还是新建分区
1 |
<span class="token function">fdisk</span> /dev/sde |
![c24b606eb1b09480ee8c2a70f3fb402a](https://flybace.com/wp-content/uploads/2022/09/c24b606eb1b09480ee8c2a70f3fb402a.jpg)
![6fcc515680898ca6cbd1c0232702fdfb](https://flybace.com/wp-content/uploads/2022/09/6fcc515680898ca6cbd1c0232702fdfb.jpg)
具体过程如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
root@pve:~<span class="token comment"># fdisk /dev/sde</span> Welcome to <span class="token function">fdisk</span><span class="token punctuation">(</span>util-linux <span class="token number">2.33</span>.1<span class="token punctuation">)</span>. Changes will remain <span class="token keyword">in</span> memory only, <span class="token keyword">until</span> you decide to <span class="token function">write</span> them. Be careful before using the <span class="token function">write</span> command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x2c01a8e9. Command <span class="token punctuation">(</span>m <span class="token keyword">for</span><span class="token builtin class-name">help</span><span class="token punctuation">)</span>: g (输入g,新建gpt分区表) Created a new GPT disklabel <span class="token punctuation">(</span>GUID: F386FD07-EE67-7B4F-9745-F79C23610CFE<span class="token punctuation">)</span>. Command <span class="token punctuation">(</span>m <span class="token keyword">for</span><span class="token builtin class-name">help</span><span class="token punctuation">)</span>: n (输入n,新建分区) Partition number <span class="token punctuation">(</span><span class="token number">1</span>-128, default <span class="token number">1</span><span class="token punctuation">)</span>: //回车 First sector <span class="token punctuation">(</span><span class="token number">2048</span>-41943006, default <span class="token number">2048</span><span class="token punctuation">)</span>: //回车 Last sector, +/-sectors or +/-size<span class="token punctuation">{</span>K,M,G,T,P<span class="token punctuation">}</span><span class="token punctuation">(</span><span class="token number">2048</span>-41943006, default <span class="token number">41943006</span><span class="token punctuation">)</span>: //回车 Created a new partition <span class="token number">1</span> of <span class="token builtin class-name">type</span><span class="token string">'Linux filesystem'</span> and of size <span class="token number">20</span> GiB. Command <span class="token punctuation">(</span>m <span class="token keyword">for</span><span class="token builtin class-name">help</span><span class="token punctuation">)</span>: w (输入w 保存) The partition table has been altered. Calling ioctl<span class="token punctuation">(</span><span class="token punctuation">)</span> to re-read partition table. Syncing disks. |
再次在终端输入fdisk -l 可以看到磁盘已经分区了
接着 格式化分区,然后挂载到目录
![63d96efb1be2c9f2390a4e0998abe821](https://flybace.com/wp-content/uploads/2022/09/63d96efb1be2c9f2390a4e0998abe821.jpg)
1 2 3 |
mkfs.ext4 /dev/sde1 <span class="token function">mkdir</span> /iscsi2 //创建iscsi2目录,用来挂载分区 <span class="token function">mount</span> /dev/sde1 /iscsi2 //挂载/dev/sde1 到iscsi2 |
![0849079a9ea10ab95f7d9e7c7021a358](https://flybace.com/wp-content/uploads/2022/09/0849079a9ea10ab95f7d9e7c7021a358.jpg)
再输入 df -h 查看是否挂载成功,出现在列表里,成功挂载。
![e8cc724d8aca6eb004ed7b5b46e8466e](https://flybace.com/wp-content/uploads/2022/09/e8cc724d8aca6eb004ed7b5b46e8466e.jpg)
1.8。在pve中使用EXT4目录
依旧在数据中心,储存,这里选择添加目录
![cb9057ec0e6159a8a5ea92cbadeed52c](https://flybace.com/wp-content/uploads/2022/09/cb9057ec0e6159a8a5ea92cbadeed52c.jpg)
这里id,自己填写
目录 刚才挂载的那个路径
内容 自己按需添加
共享 开启
![843a1e2dcc29f5ba14b64ec62de43b28](https://flybace.com/wp-content/uploads/2022/09/843a1e2dcc29f5ba14b64ec62de43b28.jpg)
回到节点页,可以看到已经添加进去了。
![43bff1e5620b097b7b64e01da688a551](https://flybace.com/wp-content/uploads/2022/09/43bff1e5620b097b7b64e01da688a551.jpg)
测试一下
在可以看到通过目录方式挂载的lvm,已经可以正常识别了
![78016ae4f3f8a436e8d4bf5701d0b82d](https://flybace.com/wp-content/uploads/2022/09/78016ae4f3f8a436e8d4bf5701d0b82d.jpg)
通过lvm挂载的iscsi也可以看到。
![07c5101886a341226c0c7f3c5ca42462](https://flybace.com/wp-content/uploads/2022/09/07c5101886a341226c0c7f3c5ca42462.jpg)
1.9使用NTFS挂载磁盘(推荐)
上面说到了LVM/EXT4,都是linux常用的。如果要进行扩容,缩减就必须技术人员技术扎实咯。介于我这半吊子技术,我还懒得写lvm、ext扩容教程,于是乎,有了一个非常nb的想法。
linux下的磁盘扩容很难,那我就在windows下呗。gui操作,多简单。ext和lvm在windows下操作不容易,所以干脆就用NTFS吧!
NTFS完美的解决了新手使用linux的问题!
使用ntfs优点
1、通用性强。ntfs可以在windows下识别,可以在linux下识别。
2、数据修改和恢复简单。ntfs直接在windows识别,直接操作,不讲道理,如果使用ext合适,还得下专业的软件,比如dg分区,还收费!
3、对分区的操作十分简单。把iscsi挂载到windows下,直接通过windows的磁盘管理就可以进行分区操作,比如扩容,缩减空间。
缺点:
不能开机挂载,可能我技术垃圾。
实现原理
把iscsi磁盘挂载到windows下,新建分区。然后挂载到pve下面就ok
实践操作
1、创建iscsi磁盘,并且进行分区操作。
(我这里用的server2016。使用存储服务器的话,请在存储服务器上操作)
![12174a3ee2e828c3c9d90ca7bb3f4ff1](https://flybace.com/wp-content/uploads/2022/09/12174a3ee2e828c3c9d90ca7bb3f4ff1.jpg)
因为windows的iscsi利用的是vhdx,所以我这里不需要额外的去找个windows来挂载,直接禁用这个分配(不禁用的话,是无法编辑vhdx的),然后去编辑vhdx就行
![efa1d70eec967dbfaed04b1ad70e19f1](https://flybace.com/wp-content/uploads/2022/09/efa1d70eec967dbfaed04b1ad70e19f1.jpg)
已经成功装载,只是没分区信息,现在去磁盘管理 ,进行初始化,分区。
![1cf32047eac3ef03cdcf66ce880f4f92](https://flybace.com/wp-content/uploads/2022/09/1cf32047eac3ef03cdcf66ce880f4f92.jpg)
![310b3c86ad933782fc43af85acbb08a2](https://flybace.com/wp-content/uploads/2022/09/310b3c86ad933782fc43af85acbb08a2.jpg)
这里初始化成gpt
![4f749c44d3be635e49a7699d5a00f12f](https://flybace.com/wp-content/uploads/2022/09/4f749c44d3be635e49a7699d5a00f12f.jpg)
接着在磁盘里,新建一个文件
![6ecedc72e9ec28736bd92157a2c5b75d](https://flybace.com/wp-content/uploads/2022/09/6ecedc72e9ec28736bd92157a2c5b75d.jpg)
脱离vhdx,然后再启用iscsi
![758d3f85747b6f1546d37452d325c4e2](https://flybace.com/wp-content/uploads/2022/09/758d3f85747b6f1546d37452d325c4e2.jpg)
![7b796cb9a2dc45186ea7b4498c284a3e](https://flybace.com/wp-content/uploads/2022/09/7b796cb9a2dc45186ea7b4498c284a3e.jpg)
2、pve连接iscsi(参照1.3)
![fa0ec35afb4be9db4b255e9efaec4969](https://flybace.com/wp-content/uploads/2022/09/fa0ec35afb4be9db4b255e9efaec4969.jpg)
![5919efa49dc5117b478fab241d2dacd5](https://flybace.com/wp-content/uploads/2022/09/5919efa49dc5117b478fab241d2dacd5.jpg)
3、PVE里挂载NTFS磁盘
先安装ntfs-3g
1 2 |
<span class="token function">apt</span> update <span class="token function">apt-get</span> -y <span class="token function">install</span> ntfs-3g |
![8b63e21a1016cda93baf037158f94079](https://flybace.com/wp-content/uploads/2022/09/8b63e21a1016cda93baf037158f94079.jpg)
proxmox ve换个源教程 https://foxi.buduanwang.vip/linux/298.html/
![9f6a96e2e653e35f89fb41fca3e634a9](https://flybace.com/wp-content/uploads/2022/09/9f6a96e2e653e35f89fb41fca3e634a9.jpg)
终端输入fdisk- l 然后找到5G的磁盘,挂载到/ntfs
1 2 3 |
<span class="token function">fdisk</span> -l //查看5G磁盘 <span class="token function">mkdir</span> /ntfs2 //创建挂载点 <span class="token function">mount</span> /dev/sdd2 /ntfs //挂载操作 |
![c4612743ce0a2a2b65c1f9e01fc13cd9](https://flybace.com/wp-content/uploads/2022/09/c4612743ce0a2a2b65c1f9e01fc13cd9.jpg)
![085ab650f416abd4b585b1d3ea49705b](https://flybace.com/wp-content/uploads/2022/09/085ab650f416abd4b585b1d3ea49705b.jpg)
通过df -h 可以看到挂载成功,同时进入磁盘,发现还是有一个刚才新家的文件,自己还新建一个inedx.html
4、在pve里挂载目录
![cadb9f93a16f6c2ad56f8db1a0272c8b](https://flybace.com/wp-content/uploads/2022/09/cadb9f93a16f6c2ad56f8db1a0272c8b.jpg)
![859a947c68c3e795a35a4b5794db5e59](https://flybace.com/wp-content/uploads/2022/09/859a947c68c3e795a35a4b5794db5e59.jpg)
5、进行扩容操作
1、对iscsi磁盘进行操作,必须取消挂载,登出节点
卸载挂载点
1 |
<span class="token function">umount</span> /dev/sdd2 |
![ddf2229e029f0f8e3091a1a7c82647c5](https://flybace.com/wp-content/uploads/2022/09/ddf2229e029f0f8e3091a1a7c82647c5.jpg)
登出iscsi
1 2 3 4 |
root@pve:~<span class="token comment"># iscsiadm -m discovery -t st -p 10.13.14.205 //查看刚才挂载的node</span><span class="token number">10.13</span>.14.205:3260,1 iqn.1991-05.com.microsoft:win-21mqolqacj8-ugu-target root@pve:~<span class="token comment"># iscsiadm -m node -T iqn.1991-05.com.microsoft:win-21mqolqacj8-ugu-target -p 10.13.14.205 -u //临时登出node</span> Logging out of session <span class="token punctuation">[</span>sid: <span class="token number">1</span>, target: iqn.1991-05.com.microsoft:win-21mqolqacj8-ugu-target, portal: <span class="token number">10.13</span>.14.205,3260<span class="token punctuation">]</span> Logout of <span class="token punctuation">[</span>sid: <span class="token number">1</span>, target: iqn.1991-05.com.microsoft:win-21mqolqacj8-ugu-target, portal: <span class="token number">10.13</span>.14.205,3260<span class="token punctuation">]</span> successful. //登出成功 |
1 2 |
iscsiadm -m discovery -t st -p iscsi_ip:port //查看node iqn命令 不加port就是默认3260 iscsiadm -m node -T node_iqn -p iscsi_ip:port -u //临时登出node命令 |
2、回到iscsi服务器,对磁盘扩容。
![6c98306310e68ed720eb0f840f91f233](https://flybace.com/wp-content/uploads/2022/09/6c98306310e68ed720eb0f840f91f233.jpg)
![46e7d05c55b939182c8d2996b58f697c](https://flybace.com/wp-content/uploads/2022/09/46e7d05c55b939182c8d2996b58f697c.jpg)
装载磁盘进行扩容
![9ad6a2e4f26f31778086d32cf35486ec](https://flybace.com/wp-content/uploads/2022/09/9ad6a2e4f26f31778086d32cf35486ec.jpg)
![d2db57f5c9599510af6117e3bc5ae9b1](https://flybace.com/wp-content/uploads/2022/09/d2db57f5c9599510af6117e3bc5ae9b1.jpg)
![0e7f1de3ec8f6bcb95ac7e6d15ea4866](https://flybace.com/wp-content/uploads/2022/09/0e7f1de3ec8f6bcb95ac7e6d15ea4866.jpg)
3、重新挂载iscsi
登录iscsi
1 |
iscsiadm -m node -T iqn.1991-05.com.microsoft:win-21mqolqacj8-ugu-target -p <span class="token number">10.13</span>.14.205 -l |
![389be8d30bb1fe76576808d2bf7957d1](https://flybace.com/wp-content/uploads/2022/09/389be8d30bb1fe76576808d2bf7957d1.jpg)
1 |
iscsiadm -m node -T node_iqn -p iscsi_ip:port -l //登入命令 |
我在进行这步操作之后,发现找不到扩容之后的iscsi磁盘,删除原来的磁盘分配,重启iscsi服务器,再分配磁盘就行了。使用存储服务器的可以忽略
![d2ef3fb87fd3a2056bba274258b6a987](https://flybace.com/wp-content/uploads/2022/09/d2ef3fb87fd3a2056bba274258b6a987.jpg)
1 |
<span class="token function">mount</span> /dev/sdd2 /ntfs |
![f0e084170ea1dc6e2f4141a06e7320c5](https://flybace.com/wp-content/uploads/2022/09/f0e084170ea1dc6e2f4141a06e7320c5.jpg)
iscsi完美收工
二:配置nfs
nfs很简单,作为文件储存,不涉及分区块,就不需要执行分区操作,挂载就能用,十分高效和快捷。而且可以在server上直接对文件进行操作。维护/备份十分方便
这里还是使用的是server2016创建的nfs服务
1、创建nfs服务
进入文件和储存服务,找到共享,然后添加匿名的共享,因为pve面板上没有用户验证,只能通过匿名访问
![b78300a4e5f01775730a9985ae1a698c](https://flybace.com/wp-content/uploads/2022/09/b78300a4e5f01775730a9985ae1a698c.png)
2、进PVE面板挂载nfs
还是进入数据中心——储存——添加nfs
![b457a83f140dff85a187e25d36a96773](https://flybace.com/wp-content/uploads/2022/09/b457a83f140dff85a187e25d36a96773.png)
依旧像ISCSI那样,直接输入ID(自定义),服务器IP,export会自动识别出来。内容就需要根据自己的意思选中咯。还有勾选高级选项,会出现nfs版本,这里要对应server,server2016默认是4.1,所以我选择了4.1
需要注意的是,在集群环境中,需要nfs做客户端映射的,就需要在节点选择nfs映射的节点。我这里是未映射就能访问,所以我这集群中,2个pve都能挂载,我就没选了。
![5a99843735341b0a1c3ab38352b6dc3f](https://flybace.com/wp-content/uploads/2022/09/5a99843735341b0a1c3ab38352b6dc3f.png)
哦豁,出错了
![63c1885916ddbe74cfac576f4bca0b69](https://flybace.com/wp-content/uploads/2022/09/63c1885916ddbe74cfac576f4bca0b69.png)
这里提示权限问题,应该是server2016权限问题,我把这里设置为允许未映射的用户访问。
![9181721bef6c5c852e5b24602396a3de](https://flybace.com/wp-content/uploads/2022/09/9181721bef6c5c852e5b24602396a3de.png)
然后就已经成功添加/访问。
![16bbd5f8dfb1c3d51d474d1c613bcc75](https://flybace.com/wp-content/uploads/2022/09/16bbd5f8dfb1c3d51d474d1c613bcc75.png)
在server2016里成功的看到了文件们
![489a0edd1d2065dfdc299c160b923a08](https://flybace.com/wp-content/uploads/2022/09/489a0edd1d2065dfdc299c160b923a08.png)
三 pve挂载smb教程
smb这里需要详细说一下服务器端的配置。我这里使用的是server2016。linux的smb服务端我不讲。
smb的难点是权限设置。
1、创建smb账号.
在计算机管理里面,找到本地用户和组,新建一个smb账号
![3b36bf36591ff8030dd0ab9d1b3f5569](https://flybace.com/wp-content/uploads/2022/09/3b36bf36591ff8030dd0ab9d1b3f5569.png)
2、创建共享文件夹
直接创建一个文件夹,然后,点击高级共享
![54b27cfce89359818e0dbfafbeb19387](https://flybace.com/wp-content/uploads/2022/09/54b27cfce89359818e0dbfafbeb19387.png)
勾选共享此文件夹,点击权限,添加刚才创建的smb用户,并把权限设置成完全控制
![f00a411f6da307566215a57a1acf7928](https://flybace.com/wp-content/uploads/2022/09/f00a411f6da307566215a57a1acf7928.png)
3、在PVE里添加smb
点击数据中心,储存,添加 CIFS
![ada1c9e364609dfed92ef0bdde822916](https://flybace.com/wp-content/uploads/2022/09/ada1c9e364609dfed92ef0bdde822916.png)
ID自己定义
服务器smb服务器
用户名和密码就是刚才创建的账号密码
share:这里会自动出现文件夹,选择刚才创建的文件夹
节点:按需填写
内容:按需添加
![ba84cbdcff837007ad03b04eadb7d687](https://flybace.com/wp-content/uploads/2022/09/ba84cbdcff837007ad03b04eadb7d687.png)
完成!
![f4357815ef71a901b9ae17c0f3bdd8dc](https://flybace.com/wp-content/uploads/2022/09/f4357815ef71a901b9ae17c0f3bdd8dc.png)
全部完成。
原文地址:https://foxi.buduanwang.vip/virtualization/270.html
本文摘自:https://wp.gxnas.com/9345.html,感谢原作者