pve添加zfs磁盘阵列,分配存储
前言:
第一篇笔记仅仅是安装了pve,并且添加了cockpit和docker,这篇配置存储部分。
我的服务器目前是1块120G固态,上次已经装了系统。
还有2块320G机械盘、2块500G机械盘。
oracle关于ZFS的文档
https://docs.oracle.com/cd/E26926_01/html/E25826/preface-1.html#scrolltoc
一:添加ZFS存储池(磁盘阵列)
1.初始化磁盘
我们未必每次都能使用全新的硬盘,那么旧硬盘在ZFS或PVE当中都是不能直接发现的,它怕你误操作把有数据的硬盘给洗白白。
看我现在就是挂的几块用过的硬盘。
这些硬盘PVE默认不作为新硬盘给你用。需要重新初始化一下。
dd if=/dev/zero of=/dev/sd[X] bs=1M count=200
X代表你要初始化的磁盘。
根据我的情况:
root@pve01:/dev# dd if=/dev/zero of=/dev/sdb bs=1M count=200 200+0 records in 200+0 records out 209715200 bytes (210 MB, 200 MiB) copied, 1.53484 s, 137 MB/s root@pve01:/dev# dd if=/dev/zero of=/dev/sdc bs=1M count=200 200+0 records in 200+0 records out 209715200 bytes (210 MB, 200 MiB) copied, 1.6981 s, 123 MB/s root@pve01:/dev# dd if=/dev/zero of=/dev/sdd bs=1M count=200 200+0 records in 200+0 records out 209715200 bytes (210 MB, 200 MiB) copied, 2.16789 s, 96.7 MB/s root@pve01:/dev# dd if=/dev/zero of=/dev/sde bs=1M count=200 200+0 records in 200+0 records out 209715200 bytes (210 MB, 200 MiB) copied, 2.1021 s, 99.8 MB/s root@pve01:/dev#
PVE可以看到 硬盘了。
2.创建ZFS
反正我也不知道为什么PVE的web界面无法创建ZFS。
我们用命令行来创建:
先看帮助:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
我们只关心creat
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
3.查看磁盘
fdisk -l
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
可以看出有
sda 120G 固态
sdb 500G 机械
sdc 500G 机械
sdd 320G 机械
sde 320G 机械
4.创建raid0
示例以两块320来做
root@pve01:/dev# zpool create -f Storage sdd sde
5.创建raid1
示例以两块500来做
root@pve01:/dev# zpool create -f Virtual mirror sdb sdc
6.校验结果
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
zfs会自动创建以zfs存储池为名的目录,并挂载存储池到根目录。很方便的了。
二:导入ZFS存储池
我会告诉你 最近几天我装了几遍PVE么?不会。
但是我会告诉你,我在使用UEFI引导XFS格式的6.2版PVE,会出现关机时拔掉硬盘电源线或数据线,再插上,会出现无法引导的故障。
现在我在使用传统逻辑bios引导的PVE。
1.查看可以导入的ZFS存储池
zpool import
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
2.按原来的名字导入
zpool import -f 老名字
1
|
zpool import -f Docker |
3.换个名字导入
zpool import -f 老名字 新名字
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
4.测试
原来的文件还都在的。
5.迁移ZFS
其实这是迁移ZFS当中的导入操作。可以完整的将一组ZFS存储池,通过变更接线,甚至搬迁硬盘的方式将一组ZFS存储池变更到另一个主机上。
6.导出ZFS存储池
zpool export 存储池名字
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
7.导入操作请从1开始看
三:配置docker存贮路径,镜像服务器
1.创建或修改 /etc/docker/daemon.json 文件
{ "registry-mirrors": ["https://******.mirror.aliyuncs.com"], "graph": "/Storage/docker" }
我配置DOCKER的主存储路径为/Storage/docker,毕竟Storage就是给docker准备的。
镜像服务器,用的阿里云镜像,自己去注册一个就好了。https://cr.console.aliyun.com
2.重启docker
systemctl restart docker
3.验证docker配置
docker info
可以使用docker info命令查看
也可以进入/Storage/docker查看,文件一大堆就对了。
4.配置其他文件夹
我还要创建build,存储docker-compose使用的yaml文件。
创建images,存储离线传输的镜像文件。
创建date,存储容器的永久储存文件。
四:配置pve存储路径
1.简介
PVE的存储有几个作用:
磁盘映像:虚拟机的虚拟磁盘文件
ISO镜像:安装虚拟机操作系统时使用的ISO文件
容器模板:应该是下载的容器模板,不是docker,应该是LXC容器
VZDUMP备份文件:未知
容器:还是LXC容器的东西
片段:更不知道是什么了
2.添加目录
ISO:专门存储各种安装镜像。
virtual_disk:存储各虚拟机的硬盘镜像。
container:存储容器。
这些都存在一个zfs存储池当中,分开目录,是为了方便管理以及迁移。
3.
4.
睡觉,明天继续。