« Kubernetesテストベンチへの道 ゴール - CSI Driverのインストール | トップページ | Raspberry Pi チャタリング問題 »

2020年9月 4日 (金)

Linux:SCSIアドレスとデバイス名の関係

ストレージの移行をシュミレーションしてみた。

サーバーに接続してるストレージ装置をいったん切り離して、なんだかんだで再接続することを想定。ここでの”なんだかんだ”には新旧ストレージ装置間のマイグレーションなんかも含む想定(つまり中身は全く同じ2つのストレージの入れ替え作業)。基本的にSCSIアドレスは変えない想定なれど、場合によってはTARGET IDが変わったり、LUNの順番が変わったりする場合もある。そんなこんなを想定して、以下実験結果。

先に結論を言うと、

  • ストレージのLUN順番は変えないのが原則。TARGET IDは変わってもよい。
  • blkidコマンドで各ストレージのUUIDを確認することで、デバイス名の変化有無を確認すること。

実験結果

環境
ESXiで仮想マシーンを作成(CentOS 7.8)
ディスクを追加(1GBを5つ)し、SCSIアドレスを変更することで以下を実験。

1. 初期disk配置とボリューム作成
disk1 (1:0) -> /dev/sdb << パーティションに直接mkfs (物理ボリュームは作成せず)
disk2 (1:1) -> /dev/sdc -+---- lv-cde1 << LVM上の論理ボリューム
disk3 (1:2) -> /dev/sdd -+-+
disk4 (1:3) -> /dev/sde -+-+-- lv-cde2 << LVM上の倫理ボリューム
disk5 (1:4) -> /dev/sdf << パーティションを作成しないまま

sdc, sdd, sdeでVolume Groupを作成し、Logical Volumeを2つ作成した。容量が1GBと小さいためか、それぞれsdcとsdd、sddとsdeにまたがる形で作成された(3つのPhysical Volumeにまたがらなかた)


2. SCSIアドレスの変更、但しアドレス順(昇順)は変えない。
disk1 (2:0) -> /dev/sdb
disk2 (2:1) -> /dev/sdc -+---- lv-cde1
disk3 (2:2) -> /dev/sdd -+-+
disk4 (2:3) -> /dev/sde -+-+-- lv-cde2
disk5 (2:4) -> /dev/sdf

デバイス名は変わらない。

[root@localhost ~]# blkid
/dev/sr0: UUID="2020-04-22-00-54-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="1635ceff-7bb0-4e6a-a87a-c619572ff03b" TYPE="xfs"
/dev/sda2: UUID="Y686S2-ikqg-pJve-lVy1-JTuZ-seKl-gnCVfw" TYPE="LVM2_member"
/dev/sdb1: UUID="0b05e45c-08a4-4984-b103-7bbdc0cdfb43" TYPE="xfs"
/dev/sdc1: UUID="UOKV4v-F4pE-ZbmA-01NF-X3Is-dBWG-12OH63" TYPE="LVM2_member"
/dev/sdd1: UUID="RzmoRR-MXij-n514-uIoc-032L-o248-buUXlE" TYPE="LVM2_member"
/dev/sde1: UUID="pV0zWa-KSSW-pYpZ-rFTx-VILu-dxNk-9seLd7" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="68f6ae90-ae9c-41fd-8e5e-d9388b408a3f" TYPE="xfs"
/dev/mapper/centos-swap: UUID="9eb7dd62-13de-410b-934e-07bd1ff91e6b" TYPE="swap"
/dev/mapper/poc--vg-lv--cde1: UUID="1252bce6-2b96-4844-9301-da3218b4a7aa" TYPE="xfs"
/dev/mapper/poc--vg-lv--cde2: UUID="4640987d-f67e-437f-b0fa-c94fd2e5107e" TYPE="xfs"
[root@localhost ~]#


3.SCSIアドレスを、逆順に変更。
disk1 (1:4) -> /dev/sdf
disk2 (1:3) -> /dev/sde -+---- lv-cde1
disk3 (1:2) -> /dev/sdd -+-+
disk4 (1:1) -> /dev/sdc -+-+-- lv-cde2
disk5 (1:0) -> /dev/sdb

物理ストレージに対するデバイス名が変わる。デバイス名はSCSIバススキャンの順序(らしい)。

LVM上のLogical Volumeの構成物理ボリュームは変更後の物理ボリューム名に自動で変更されている。
よってLVM上の論理ボリュームはディスクアドレス変更の影響を受けずにアクセスが可能となっている。
一方、/dev/sdbは/dev/sdfに変わってしまうので注意が必要。

何が何に変わったかはUUIDを確認することでわかる。上記ステップ2での/dev/sdb1のUUIDが以下では/dev/sdf1のUUIDになっているので、/dev/sdb1をマウントしていたマウントポイントは/dev/sdf1をマウントするように変更することになる。
[root@localhost ~]# blkid
/dev/sr0: UUID="2020-04-22-00-54-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="1635ceff-7bb0-4e6a-a87a-c619572ff03b" TYPE="xfs"
/dev/sda2: UUID="Y686S2-ikqg-pJve-lVy1-JTuZ-seKl-gnCVfw" TYPE="LVM2_member"
/dev/sdc1: UUID="pV0zWa-KSSW-pYpZ-rFTx-VILu-dxNk-9seLd7" TYPE="LVM2_member"
/dev/sdd1: UUID="RzmoRR-MXij-n514-uIoc-032L-o248-buUXlE" TYPE="LVM2_member"
/dev/sde1: UUID="UOKV4v-F4pE-ZbmA-01NF-X3Is-dBWG-12OH63" TYPE="LVM2_member"
/dev/sdf1: UUID="0b05e45c-08a4-4984-b103-7bbdc0cdfb43" TYPE="xfs"
/dev/mapper/centos-root: UUID="68f6ae90-ae9c-41fd-8e5e-d9388b408a3f" TYPE="xfs"
/dev/mapper/centos-swap: UUID="9eb7dd62-13de-410b-934e-07bd1ff91e6b" TYPE="swap"
/dev/mapper/poc--vg-lv--cde1: UUID="1252bce6-2b96-4844-9301-da3218b4a7aa" TYPE="xfs"
/dev/mapper/poc--vg-lv--cde2: UUID="4640987d-f67e-437f-b0fa-c94fd2e5107e" TYPE="xfs"
[root@localhost ~]#

« Kubernetesテストベンチへの道 ゴール - CSI Driverのインストール | トップページ | Raspberry Pi チャタリング問題 »

ツールの使い方」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« Kubernetesテストベンチへの道 ゴール - CSI Driverのインストール | トップページ | Raspberry Pi チャタリング問題 »