Ubuntu
zfs 池創建:未對齊的硬碟?
我最近創建了一個新的 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
看到但沒有看到這種提示,你通常是安全的。這是對同一問題的深入回答。