Ubuntu

zfs 池創建:未對齊的硬碟?

  • December 10, 2020

我最近創建了一個新的 ZFS 池,來自 btrfs。我遵循了常見的和最近的教程,並查看了手冊頁和 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 連接到新池

但也許傳輸大小與移位無關?非常感謝您的幫助!

提前致謝

// 編輯:系統資訊

(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

此問題與 ZFS 無關,因此我將從您的問題中刪除該標籤。

您可以放心地忽略此警告。HDD 報告的“最佳傳輸大小”的值顯然是無稽之談:33553920字節是65535扇區(512字節)。因此,HDD 將0xFFFF扇區報告為最佳傳輸大小,這是一個 16 位數字,所有位都已設置,通常意味著驅動器的韌體尚未觸及該值,或者尚未將其正確程式到 NV 儲存中(通常的 NAND 快閃記憶體在擦除/初始化後所有位都設置為 1)。

在較舊的核心版本中,這可能會欺騙分區工具導致未對齊的分區。較新的核心具有健全性檢查並丟棄這些奇怪的值以獲得最佳傳輸大小,但會輸出警告以通知使用者他的磁碟在胡說八道。

fdisk如果遇到未對齊的分區,通常會抱怨,所以如果你fdisk -l看到但沒有看到這種提示,你通常是安全的。

是對同一問題的深入回答。

引用自:https://unix.stackexchange.com/questions/623682