zfs 池创建:HDD 未对齐?

zfs 池创建:HDD 未对齐?

我最近创建了一个来自 btrfs 的新 ZFS 池。我遵循了常见的和最新的教程,并检查了手册页和 Ubuntu 手册。

每篇文章都说 ZFS 将为我处理格式化和创建分区表 - 结果看起来确实不错。

然后我查看了 dmesg 日志,发现了这一行可疑的行:

$ dmesg -H --color=always --follow --decode  --ctime
kern  :warn  : [Wed Dec  9 20:13:22 2020] sd 5:0:0:0: [sdc] Optimal transfer size 33553920 bytes not a multiple of physical block size (4096 bytes)

现在我想知道这是怎么发生的。根据我找到的所有手册,这种情况不应该发生。如果这不是警告,我不会在意。我也没有找到有关此错误消息的太多信息。

以下是来自 hdparm 的一些信息:

(user@host)[~/] $ sudo hdparm -I  /dev/sdc

/dev/sdc:

ATA device, with non-removable media
        Model Number:       WDC WD20EFRX-68EUZN0                    
        Serial Number:      WD-WCCXXXXXXXXP
        Firmware Revision:  82.00A82
        Transport:          Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
        Supported: 9 8 7 6 5 
        Likely used: 9
Configuration:
        Logical         max     current
        cylinders       16383   16383
        heads           16      16
        sectors/track   63      63
        --
        CHS current addressable sectors:    16514064
        LBA    user addressable sectors:   268435455
        LBA48  user addressable sectors:  3907029168
        Logical  Sector size:                   512 bytes
        Physical Sector size:                  4096 bytes
        Logical Sector-0 offset:                  0 bytes
        device size with M = 1024*1024:     1907729 MBytes
        device size with M = 1000*1000:     2000398 MBytes (2000 GB)
        cache/buffer size  = unknown
        Nominal Media Rotation Rate: 5400

还:

$ zpool get all | grep ashift
nextcloud  ashift                         0                              default

所以我的想法是:

  • 从镜像中移除两个 HDD 之一
  • 手动创建一个新池 ashift=12
  • 复制数据
  • 摧毁旧水池
  • 将另一个 HDD 连接到新池

但也许传输大小与 ashift 无关?非常感谢帮助!

提前致谢

// 编辑:系统信息

(user@host)[~] $ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

(user@host)[~] $ zfs --version
zfs-0.8.3-1ubuntu12.5
zfs-kmod-0.8.3-1ubuntu12.4

答案1

这个问题与 ZFS 无关,所以我将从您的问题中删除该标签。

您可以安全地忽略此警告。 HDD 报告的“最佳传输大小”值显然是无稽之谈:33553920字节是65535512字节的)扇区。因此,HDD 将0xFFFF扇区报告为最佳传输大小,这是一个所有位均已设置的 16 位数字,通常意味着驱动器的固件尚未触及该值,或者尚未正确编程到 NV 存储中(通常的 NAND 闪存在擦除/初始化后所有位都设置为 1)。

在较旧的内核版本中,这可能会诱使分区工具导致分区不对齐。较新的内核进行了健全性检查,并丢弃了最佳传输大小的奇怪值,但输出警告以通知用户他的磁盘正在胡说八道。

fdisk如果遇到未对齐的分区,通常会抱怨,因此,如果您遇到了fdisk -l但没有看到此类提示,通常是安全的。

这里是对同一问题的深入回答。

相关内容