RAID1 + LVM

Linux

はじめに

LinuxでRAID1にLVMを構成するために調べました。
/dev/sdxのxはOSを起動するたびに替わるのでUUID、またはUUID_SUBで判別します。
パソコンにはSlot0からSlot7まであり、8台のハードディスクが使えます。
Slot0とSlot1のSSDは同型番でOSインストール時にRAID1で作成したのでUUIDで物理的にどちらか判別できません。
SSDの交換時に確認するつもりです。

今回の方法では、使用可能なHDD容量は半分になります。

環境

HDD 4台を使って2台ずつでRAID1を作り、その上にLVMで領域を作りました。
SSD 2台は、OSのインストール時にRAID1で構成しています。

/bootのEFI領域はRAID1にはしていません。

- Debian 12 bookworm

- mdadm 4.2-5
- lvm2 2.03.16-2

- SSD 1TB 2台
  起動用 RAID1
      243M     EFI System
      931.3G   Linux RAID
  Slot1
  Slot2
    
- HDD 8TB 4台
  データ用 RAID1 x 2
  Slot4
  Slot5
  Slot6
  Slot7

LVMのインストール

LVMをインストールします。

sudo apt install lvm2

RAID1の構築 md1

2台のHDD(8TB)を取り付けてRAID1、LVMの作成を行います。
2台は異なるメーカー(または型番)とし、UUIDと実物が紐づけられるようにします。
はじめに/dev/sdxとHDDの型番の関連を探します。
今回はsdcとsddでした。

sudo blkid

sudo dmesg

sudo fdisk -l

2台とも1個のパーティションをパーティションタイプ「Linux RAID(42)」にします。

sudo fdisk /dev/sdc

sudo fdisk /dev/sdd

gコマンドでGPTにする
nコマンドでディスク全体を1個の領域で確保
tコマンドでパーティションタイプを変更(42:Linux RAID)
pコマンドで確認
wコマンドで書き込み、終了

使っているmdのデバイス名を確認します。
起動ディスクでmd0を使っていたのでmd1を使います。

cat /proc/mdstat

RAID1のmdアレイを作成します。

sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1

RAIDの状態を確認します。

cat /proc/mdstat

sudo mdadm --detail /dev/md1

mdadmの情報をファイルに記載します。

sudo mdadm --detail --scan

md2に関する行を追記します。

su

mdadm --detail --scan > /etc/mdadm/mdadm.conf

exit

mdadmの情報をアップデートします。

sudo update-initramfs -u

RAID1の状態を確認します。

cat /proc/mdstat

LVMの設定 md1

md1に物理ボリュームを作成します。

sudo pvcreate /dev/md1
sudo pvdisplay
sudo pvs

ボリュームグループを作成します。

sudo vgcreate VolGroup /dev/md1
sudo vgdisplay
sudo vgs

VGの全容量を使用します。
lvという名前でLVを作成します。
/dev/VolGroup/lv、または/dev/mapper/VolGroup-lvでアクセス可能です。

sudo lvcreate -l +100%FREE VolGroup -n lv

ファイルシステムを作成します。

sudo mkfs -t ext4 /dev/VolGroup/lv

マウントポイントを作成します。

sudo mkdir /LVM

マウントします。

sudo mount -t ext4 /dev/VolGroup/lv /LVM

sudo umount /LVM

/etc/fstabに記述します。

sudo vi /etc/fstab

fatabの設定を反映させて、マウントできるか確認します。

sudo systemctl daemon-reload

sudo mount /LVM

df -h

LVにディレクトリを作成します。

cd /LVM
sudo mkdir /data

容量を増やす RAID1の構築 md2

更にHDDを2台追加してmd2を作成し、ボリュームグループに追加します。
最初の2台と同様に/dev/sdxの割り当てを探し、fdiskで領域を作成します。
今回は/dev/sdeと/dev/sdfでした。

sudo fdisk /dev/sde
sudo fdisk /dev/sdf

sudo fdisk -l

sudo mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sde1 /dev/sdf1

su

mdadm --detail --scan > /etc/mdadm/mdadm.conf

exit

sudo mdadm --detail /dev/md2
sudo update-initramfs -u

cat /proc/mdstat

容量を増やす LVMの構築 md2

md2に物理ボリュームを作成します。

sudo pvcreate /dev/md2

既存のVolGroupに追加します。

sudo vgextend VolGroup /dev/md2
sudo vgdisplay -v VolGroup

LVを拡張します。

sudo lvextend -l +100%FREE /dev/VolGroup/lv

確認します。

sudo vgdisplay -v VolGroup

ファイルシステムを拡張します。

sudo resize2fs /dev/VolGroup/lv

HDDを搭載しているSlot番号とUUIDの対応を調べる

HDDの故障時のためにHDDを搭載しているSlot番号とUUIDの対応を調べておきます。

sudo blkid

sudo dmesg | grep sd

Comments