我有一台服务器,所有磁盘都连接到 3ware 卡。我知道 ZFS 拥有自己的 RAID,并且由于其性质,需要查看各个磁盘才能正常运行。不幸的是,这是我在该服务器上可以拥有的唯一磁盘设置。我已经在 3ware 中重新配置了磁盘,使每个磁盘都是一个单元,没有 RAID 级别。即使这样做,我也不确定 ZFS 是否可以正确看到它们并可以访问所有磁盘属性。
我可以在 3ware RAID 系统上使用 ZFS 吗?
我需要对此服务器进行一些测试:
如果我仅在磁盘上安装 ZFS,没有 RAID 级别,直接查看硬件的要求是否仍然适用?
答案1
ZFS 池可以在许多设备上创建,从原始磁盘到文件。如果您在硬件级别配置 RAID 并提供逻辑磁盘,则可以在其之上配置 ZFS。但 ZFS 喜欢看到独立的磁盘/设备,这样您就可以从所谓的自我修复功能中受益。我的建议是不要使用硬件级别 RAID,而是在配置 ZFS 时公开各个磁盘并配置 RAID 级别。如果您想测试 ZFS,您可以使用单个磁盘甚至现有文件系统上的文件,例如:
truncate -s 1G /var/tmp/disk0
zpool create tstpool /var/tmp/disk0
您还可以使用以下方法创建镜像:
truncate -s 1G /var/tmp/disk0 /var/tmp/disk1
zpool create tstpool mirror /var/tmp/disk0 /var/tmp/disk1
zpool status tstpool
pool: tstpool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
tstpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
/var/tmp/disk0 ONLINE 0 0 0
/var/tmp/disk1 ONLINE 0 0 0
errors: No known data errors
答案2
即使这样做了,我也不确定 ZFS 是否能正确地看到它们并可以访问所有磁盘属性。
可以在服务器上试试吗?例如,在 Solaris 和 illumos 上,您可以使用format
或format -e
列出所有已识别的磁盘设备:
- 如果它们被正确识别为全名(如本机设备),则控制器很可能处于 HBA(主机总线适配器)模式,并且只是将它们传递(最佳选择)
- 如果它们被识别,但名称听起来像控制器中的编号虚拟磁盘,则它可能处于具有 JBOD 设置的 RAID 模式。这仍然没问题,您可以在其上构建 ZFS,但稍后将磁盘从控制器移动到另一个(替换)控制器时可能会出现问题。这取决于硬件,而不是 ZFS(相同类型的控制器通常就可以)。
- 如果仅显示一个大磁盘,则无法获得 ZFS 冗余和自我修复,但会收到错误指示。此外,你的表现可能会更差,第二点中的所有内容也适用(我会避免这种情况)。
- 如果找不到它们,您根本无法使用它们(最坏的情况)。