私は最近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
バイトはセクタ65535
(512
バイト)です。したがって、HDDは0xFFFF
そのセクタをすべてのビットが設定された16ビット数の最適な転送サイズとして報告します。これは通常、ドライブのファームウェアがまだその値に達していないか、NVストレージに正しくプログラムされていないことを意味します。 (通常、NANDフラッシュ消去/初期化後、すべてのビットが1に設定されます。)
以前のバージョンのカーネルでは、パーティショニングツールをだまして、パーティションが誤ってソートされるようにすることができます。最新のカーネルは健全性チェックを実行し、最適な転送サイズの奇数を削除しますが、ユーザーにディスクが気にしないことを知らせる警告を出力します。
fdisk
ソートされていないパーティションが発生した場合、通常は苦情が表示されるため、そのようなプロンプトが表示されない場合でもfdisk -l
通常は安全です。
ここ同じ質問に対する深い答えです。