RAID1
8TBのSATA HDDを2台、mdadmを使用して、ソフトウェアRAID1を構築、撮りためたり、録りためた写真やムービーのバックアップに利用し様と考えている。別途、4TBを8台使用したRAID5の構築も予定中。現在使用している10TBと20TBのハードウェアRAID5の代替を目指す。
今回は、障害時の対応のため、物理的なHDDの取付場所と設定時のブロックデバイスの名前を紐付けするためにシリアルナンバーの確認方法のメモ。
まずはじめに、ブロックデバイス(ブロック単位でデータを読み出す装置類)を確認する。Ubuntuではsnapパッケージが、個々のインストールごとに独自の仮想ファイルシステム環境(スナップショット)を生成しているので、grep -v snapで除外します。Snapパッケージはループバックデバイス(デバイス名が loopで始まるデバイス)を利用し、/snap/にマウントするため、grep -v loopでも構いません。蛇足ですが、今回のような確認時には大量にループバックデバイスが現れ不便なのですが、snapパッケージのこのような仕様はアプリケーションとその依存関係を隔離し、システムの他の部分との競合を避けるために役立っています。
10:42 AM kimi@ryzen9-9900x:~
$ lsblk | grep -v snap
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 7.3T 0 disk
└─md0 9:0 0 7.3T 0 raid1 /mnt/raid
sdb 8:16 0 7.3T 0 disk
└─md0 9:0 0 7.3T 0 raid1 /mnt/raid
nvme0n1 259:0 0 931.5G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot/efi
└─nvme0n1p2 259:2 0 930.5G 0 part /sdaとsdbがmd0を構成し、/mnt/raidにマウントされていることが判りました。次に、udevadmコマンドで、これらのデバイスのシリアルナンバーを確認します。
10:17 AM kimi@ryzen9-9900x:~
$ sudo udevadm info --query=all --name=/dev/sda | grep SERIAL
E: ID_SERIAL=ST8000DM004-2U9188_ZR15F38E
E: ID_SERIAL_SHORT=ZR15F38E
10:17 AM kimi@ryzen9-9900x:~
$ sudo udevadm info --query=all --name=/dev/sdb | grep SERIAL
E: ID_SERIAL=ST8000DM004-2U9188_WSC2BQV7
E: ID_SERIAL_SHORT=WSC2BQV7このシリアルナンバーはHDDのSATAコネクタ、電源コネクタの反対側の面に貼り付けられているシールに記載されていることを確認しています。
以上、障害時に交換すべきHDDの確認が可能となりました。
なお、lsblkコマンド、smartctlコマンドでもこのシリアルナンバーの確認は可能です。例えば、
11:10 AM kimi@ryzen9-9900x:~
$ lsblk /dev/sda -o NAME,MODEL,SERIAL
NAME MODEL SERIAL
sda ST8000DM004-2U9188 ZR15F38E
└─md0 S.M.A.R.Tを使用した場合は、
11:12 AM kimi@ryzen9-9900x:~
$ sudo smartctl -i /dev/sda
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.11.0-19-generic] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Seagate BarraCuda 3.5 (SMR)
Device Model: ST8000DM004-2U9188
Serial Number: ZR15F38E
LU WWN Device Id: 5 000c50 0e7c8c7ef
Firmware Version: 0001
User Capacity: 8,001,563,222,016 bytes [8.00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 5400 rpm
Form Factor: 3.5 inches
Device is: In smartctl database 7.3/5528
ATA Version is: ACS-3 T13/2161-D revision 5
SATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Sun Mar 23 11:12:55 2025 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabledなお、S.M.A.R.Tはsmartmontoolsをインストールする必要があります(Ubuntu 24.04LTS)。
Model Family: Seagate BarraCuda 3.5 (SMR)とありますが、ここでModel名に現れるSMRについても解説しておきます、なお、4TBのRAID5には以下に述べる理由からCMRを用意してあります。
CMR (Conventional Magnetic Recording)
特徴
- 各トラックが独立して書き込まれるため、ランダム書き込みの性能が高い。
- 一般的なHDD(特にエンタープライズ向けやNAS向け)に採用されている。
- RAIDやデータベース、書き込みが多い用途に適している。
デメリット
- 記録密度はSMRより低いので、同じサイズのディスクでも記憶容量が小さくなる。
SMR (Shingled Magnetic Recording)
特徴
- トラックを少しずつ重ねて(shingle = 屋根のように)書き込むことで、より多くのデータを保存できる。
- 記録密度が高く、同じ物理サイズのディスクでより大容量化が可能。
- 主にアーカイブ用途やコールドストレージ向けに使われる。
デメリット
- 書き込み時に前のデータを上書きしないようにするため、ランダム書き込みの性能が著しく低い。
- RAIDの再構築や頻繁な書き換えが発生する用途には不向き。
- 一度書き込んだデータをまとめて消す動作(ガベージコレクション)が発生するため、書き込みの遅延が大きくなることがある。
今回はRAID1で基本的に シーケンシャル書き込みが主体なので、SMR でも致命的な問題にはなりにくい と考えたのと、単なるデータ保管用途(書き込み頻度が低い)のため問題ないかな?と思いたい。
<追記>
残念ながらSMRのHDDはおすすめしない。バックアップのためだったので6TBほどのデータを転送したが、最初のうちは1000BASE-Tの理論値に近い115〜120MBの速度が出るが、直ぐに18MB程度に低下してしまいました。これはキャッシュが溢れたためと思われます。ちなみに、PCIe5.0のNVMeのM.2への転送ではこの様な転送速度の著しい低下は認められなかった。
また、後日、CMRでRAID5を構築する予定なので、RAID1とRAID5の違いはあるが、CMRとSMRの違いが確認できるかもしれない。

