因为同事反应说局域网共享无法写入了,检查发现是因为磁盘已满
在申请购买新磁盘的时候了解到,公司规定数据必须有加密和备份
于是在淘宝购买了两块8T硬盘和2光驱位转3SATA硬盘笼和大4P转3SATA供电线
原本机器里有3块硬盘 sda(2t) sdb(2t) sdc(1t), 其中a和b使用lvm做的镜像,c用来做备份盘
centos系统安装在这个lvm卷中。
步骤
- 安装d、e两块盘
- 创建一个zfs镜像pool
- 将lvm上的数据,使用rsync复制到zfs分区上
- 购买500G的ssd来安装一个ubuntu
- 在ubuntu上构建原有的所有服务,包括seafile,jenkins,gitlab,samba,预发布环境等,幸好它们大多已经迁移到docker中,这个迁移应该会比较愉快
操作
使用 ls -l /dev/disk/by-id/ 找到磁盘及其名称,使用磁盘名称比使用sdc sdb这样按接口顺序或者说加载顺序要好,可防止在磁盘离线时导致区分磁盘错误
当我使用sdb和sdc构建一个镜像pool的时候,因为意外,sdc和sdb调转了,然后我就失去了我的pool
create tank mirror /dev/disk/by-id/ata-VBOX_HARDDISK_VBec70b345-bbb15891 /dev/disk/by-id/ata-VBOX_HARDDISK_VB13ba598a-f4603d33
zfs create -o encryption=aes-256-gcm -o keyformat=passphrase -o keylocation=file:///root/.zfskey-tank-profile tank/profile
zfs load-key -L file:///root/.zfskey-tank-profile tank/profile
zfs mount tank/profile
自动载入
如果需要自动加载密钥和挂载已加密分区,你需要为添加-l选项,在ubuntu中它在 /lib/systemd/system/zfs-mount.service
自动加载仅适用于使用文件密钥的情况
zfs如何加密子文件系统:https://www.reddit.com/r/zfs/comments/bnvdco/zol_080_encryption_dont_encrypt_the_pool_root/
在centos7上安装zfs:https://www.linuxprobe.com/centos7-install-use-zfs.html