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

だから私の考えは次のとおりです。

  • 画像から2つのHDDのうちの1つを削除します。
  • 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通常は安全です。

ここ同じ質問に対する深い答えです。

関連情報