ZFS管理准备

我在ZFS管理实践的准备工作主要有:

由于笔记本电脑只有1块 NVMe存储 设备,所以和我在 私有云架构 的3块NVMe构建 Open Virtual Machine Firmware(OMVF) 虚拟化集群不同,采用将一块磁盘通过 parted分区工具 划分成多个分区,然后在分区上建立 zpool ,以满足 Docker ZFS 存储驱动libvirt_zfs_pool

前置工作

首先需要完成 Arch Linux上运行ZFS 的以下安装(选择其中之一):

磁盘分区

使用 parted分区工具 对磁盘进行分区

Apple ARM架构芯片M1 Pro 的MacBook Pro 2022

Apple ARM架构芯片M1 Pro 的MacBook Pro 2022自身存储 500GB ,使用 parted 检查:

使用parted检查NVMe磁盘分区
parted /dev/nvme0n1 print

输出显示空闲空间在 181GB~495GB 之间:

NVMe磁盘分区显示可用空间位于 181GB~495GB 之间
Model: APPLE SSD AP0512R (nvme)
Disk /dev/nvme0n1: 500GB
Sector size (logical/physical): 4096B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size    File system  Name                  Flags
 1      24.6kB  524MB  524MB                iBootSystemContainer
 2      524MB   149GB  148GB
 3      149GB   151GB  2500MB
 4      151GB   152GB  500MB   fat32                              boot, esp
 5      152GB   181GB  29.0GB  ext4
 6      495GB   500GB  5369MB               RecoveryOSContainer

规划如下:

  • 分区:

parted划分分区: 200GB libvirt zfs pool, 剩余 docker zfs driver
parted -a optimal /dev/nvme0n1 mkpart primary 181GB 231GB
parted -a optimal /dev/nvme0n1 mkpart primary 231GB 381GB
parted -a optimal /dev/nvme0n1 mkpart primary 381GB 495GB
parted /dev/nvme0n1 name 7 zpool-data
parted /dev/nvme0n1 name 8 zpool-libvirt
parted /dev/nvme0n1 name 9 zpool-docker

完成后再次检查 parted /dev/nvme0n1 print 可以看到如下分区输出:

parted分区后状态(新增3个分区用于zpool)
Model: APPLE SSD AP0512R (nvme)
Disk /dev/nvme0n1: 500GB
Sector size (logical/physical): 4096B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size    File system  Name                  Flags
 1      24.6kB  524MB  524MB                iBootSystemContainer
 2      524MB   149GB  148GB
 3      149GB   151GB  2500MB
 4      151GB   152GB  500MB   fat32                              boot, esp
 5      152GB   181GB  29.0GB  ext4
 7      181GB   231GB  50.2GB               zpool-data
 8      231GB   381GB  150GB                zpool-libvirt
 9      381GB   495GB  114GB                zpool-docker
 6      495GB   500GB  5369MB               RecoveryOSContainer

Intel Core i7-4850HQ处理器 的MacBook Pro 2013

Intel Core i7-4850HQ处理器 的MacBook Pro 2013存储 1TB ,使用 parted 检查:

X86移动云ZFS磁盘准备: 使用parted检查NVMe磁盘分区
parted /dev/nvme0n1 print

输出显示空闲空间:

X86移动云ZFS磁盘准备: 使用parted检查NVMe磁盘分区空闲是 64.0GB~1024GB
Model: SAMSUNG MZVL21T0HCLR-00B00 (nvme)
Disk /dev/nvme0n1: 1024GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  256MB   255MB   fat32        ESP      boot, esp
 2      256MB   64.0GB  63.7GB  xfs          primary

可以看到空间是 64.0GB~1024GB ,规划如下:

  • 分区:

X86移动云ZFS磁盘parted划分分区: 所有剩余磁盘空间全部作为 zpool-data 分区
parted -a optimal /dev/nvme0n1 mkpart primary 64GB 1024GB
parted /dev/nvme0n1 name 3 zpool-data

完成后检查 parted /dev/nvme0n1 print 可以看到新增加的第3个分区:

X86移动云ZFS磁盘parted划分分区: 新建的第3个分区作为zpool
Model: SAMSUNG MZVL21T0HCLR-00B00 (nvme)
Disk /dev/nvme0n1: 1024GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  256MB   255MB   fat32        ESP      boot, esp
 2      256MB   64.0GB  63.7GB  xfs          primary
 3      64.0GB  1024GB  960GB                primary

完整磁盘用于ZFS

请注意,在前文中,我在模拟系统上都是采用将一块磁盘划分为多个分区,原因只是因为笔记本电脑只有一块磁盘( NVMe存储 ),我需要用分区来实现特定目的的ZFS部署。实际上,在生产环境,通常都是完整使用整块磁盘,无需分区。

单条命令安装kubeflow 需要共享存储,我采用 Ubuntu上运行ZFS ( HPE ProLiant DL360 Gen9服务器 ) 构建ZFS使用的就是完整物理磁盘

接下来操作