MENU

サーバーに接続されているストレージとSCSIデバイスを確認する実務手順

目次

まず確認すべきコマンド(結論から)

サーバーに接続されているディスクやSCSIデバイスを確認したい場合、現代のLinuxでは lsblklsscsi の2本が最短の答えになります。

# ブロックデバイスの全体像を確認(ディスク・パーティション・マウント先を一覧表示)
lsblk

# SCSIバスに接続されたデバイスの詳細一覧(ベンダー・型番・デバイスファイル)
lsscsi

lsscsi はディストリビューションによってはデフォルト未インストールの場合があります。その際は以下でインストールしてください。

# RHEL / Rocky Linux / AlmaLinux / CentOS Stream 系
sudo dnf install lsscsi

# Ubuntu / Debian 系
sudo apt install lsscsi

lsblkでブロックデバイスの全体像を把握する

lsblk はカーネルのsysfsを参照してブロックデバイス構成をツリー形式で出力します。ディスク交換・増設後の確認や、パーティション構成の把握に使う機会が多いコマンドです。追加パッケージは不要で、util-linux に同梱されているため、どのディストリビューションでもそのまま使えます。

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   500G  0 disk
├─sda1        8:1    0     1G  0 part /boot
└─sda2        8:2    0   499G  0 part /
sdb           8:16   0     2T  0 disk
└─sdb1        8:17   0     2T  0 part /data
nvme0n1     259:0    0   512G  0 disk
└─nvme0n1p1 259:1    0   512G  0 part /opt

ディスクのベンダー・型番・シリアル番号も同時に確認したい場合は -o オプションで出力列を指定します。

# デバイスファイル・サイズ・型番・シリアル・マウント先を一覧表示
lsblk -o NAME,SIZE,MODEL,SERIAL,MOUNTPOINTS

NVMeディスクはSCSIバスを経由しないため lsscsi に表示されないことがありますが、lsblk なら nvme0n1 のような形式で一括確認できます。ストレージ構成を俯瞰する際はまず lsblk から始めるのが効率的です。

lsscsiでSCSIデバイスの詳細を確認する

LinuxではSATA・SAS・USBストレージはいずれもカーネル内でSCSIサブシステムを経由します。lsscsi はそれらのデバイスをSCSIアドレス(ホスト:チャンネル:ターゲット:LUN)付きで一覧表示します。旧来の /proc/scsi/scsi と同等の情報をより見やすい形式で取得できます。

$ lsscsi
[0:0:0:0]    disk    ATA      Maxtor 6L160M0   BACE  /dev/sda
[1:0:0:0]    disk    ATA      WDC WD20EZRX     80.0  /dev/sdb
[2:0:0:0]    cd/dvd  HL-DT-ST BD-RE BH10NS30   1.00  /dev/sr0

各列の読み方は以下のとおりです。

[ホスト:チャンネル:ターゲット:LUN]  デバイスタイプ  ベンダー  型番  リビジョン  デバイスファイル

ホスト番号はコントローラーに対応しているため、複数のSASコントローラーやHBAが搭載されているサーバーでは、どのコントローラーにどのディスクが接続されているかを判断できます。-v オプションで詳細情報を、-g オプションでsysfsのデバイスパスも合わせて表示できます。

# 詳細情報付きで表示
lsscsi -v

# sysfsのデバイスパスも含めて表示
lsscsi -g

sysfsとudevadmでデバイス属性を深掘りする

ベンダー・型番・シリアル番号・ファームウェアリビジョンをスクリプトから取得したい場合は udevadm info が確実です。udevadmはsystemdに統合されており、現代のLinuxディストリビューションであればインストール不要で使えます。

# /dev/sda の全属性を表示
udevadm info --query=all --name=/dev/sda

# ベンダー・型番・シリアルだけを抽出する例
udevadm info --query=all --name=/dev/sda | grep -E 'ID_VENDOR|ID_MODEL|ID_SERIAL'

sysfsを直接参照する方法もあります。デバイスファイル名(sda など)がわかっていれば以下のパスで各属性を読み取れます。

# SCSIデバイスのベンダー・型番をsysfsから直接確認
cat /sys/class/block/sda/device/vendor
cat /sys/class/block/sda/device/model

# ファームウェアリビジョン
cat /sys/class/block/sda/device/rev

旧来の /proc/scsi/scsi ファイルも現在のカーネルで読み取れますが、SCSIサブシステム経由のデバイスのみが対象でNVMeは反映されません。網羅性の面ではsysfsやudevadmを使う方が適切です。

# レガシーな確認方法(SCSIサブシステム経由のデバイスのみ)
cat /proc/scsi/scsi

仮想環境・クラウドでの注意点

仮想マシン(VMware・KVM・Hyper-Vなど)ではいくつか注意が必要です。

仮想ディスクのデバイス順序は保証されない:ゲストOSの再起動やハイパーバイザーの操作によって /dev/sda/dev/sdb の順序が入れ替わることがあります。ディスクの特定には名前に依存せず、/dev/disk/by-id//dev/disk/by-uuid/ のシンボリックリンクを使うのが安全です。

# 安定したデバイス識別子の一覧を確認
ls -l /dev/disk/by-id/
ls -l /dev/disk/by-uuid/

NVMeデバイスはSCSIバスを使わない:クラウドインスタンスや最新のベアメタルサーバーではNVMeディスクが標準です。lsscsi に表示されない場合でも lsblk には nvme0n1 形式で出力されます。NVMeデバイスの詳細は nvme list コマンド(nvme-cli パッケージ)で確認できます。

# nvme-cli のインストール
sudo dnf install nvme-cli   # RHEL系
sudo apt install nvme-cli   # Debian系

# NVMeデバイスの一覧表示
sudo nvme list

ある運用現場では、障害対応時に「lsscsi に出ないディスクが存在する」と混乱した事例がありました。原因はNVMeディスクの増設で、lsblk では正常に認識されていました。複数のコマンドを組み合わせて確認する習慣が実務では重要です。

<PR>この記事に関連するおすすめ書籍

[試して理解]Linuxのしくみ 増補改訂版

プロセス・ファイルシステム・権限などLinuxの内部構造を図解で理解できる一冊。運用判断の勘所が腑に落ちます。

「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。

ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。

>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)

※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次