【Linux】ストレージ管理コマンド hdparm・sdparm

Linux
スポンサーリンク

Linuxでストレージ管理コマンドについてです。

ハードディスクのベンチマークを調べるときなど、使えそうなコマンドだったのでまとめました。

デバイスファイル

Linuxにおいては、ハードディスクやUSBなどの記憶装置へのアクセスは、デバイスファイルを通じて行われます。

Linuxの主なデバイスファイルは以下の通りです。

デバイスファイル説明
/dev/sda1番目のSCSI・SATA・USB・IEEE1394デバイス
/devsdb2番目のSCSI・SATA・USB・IEEE1394デバイス
/dev/sdc3番目のSCSI・SATA・USB・IEEE1394デバイス
/dev/sdd4番目のSCSI・SATA・USB・IEEE1394デバイス
/dev/hdaIDEプライマリマスターに接続
/dev/hdbIDEプライマリスレーブに接続されたドライブ
/dev/sr01番目のSCSI・SATA・USB・CD/DVDドライブ
/dev/sr12番目のSCSI・SATA・USB・CD/DVDドライブ

Linuxで扱うハードディスクの種類

Linuxで扱うハードディスクの種類は以下の通りです。

・IDE(ATA)
・SATA(Serial ATA)
・SCSI
・SAS(Serial Attached SCSI)
・USB
・IEEE1394

さらに、LinuxではIDE以外のハードディスクは全てSCSIデバイスとして扱われるっぽい。

Linuxは、これらのデバイスに対し、転送モードや各種パラメータの確認、設定を行うことができるコマンドがあり、それが、hdparm・sdparmコマンドです。

hdparmコマンド・sdparmコマンドのインストール

hdparm

sdparm

hdparmコマンド

hdparmコマンドはハードディスクのパラメータを確認、設定することができます。

hdparm [オプション] [デバイスファイル]

オプションは以下の通りです。

オプションなし現在の設定の表示
-iハードディスクの詳細情報
-tバッファキャッシュを使わずに読み込み速度を計測
-Tバッファキャッシュを使用して読み込み速度を計測
-c 数値32bit I/Oサポートの有効/無効を設定
-c0 : サポートを無効
-c1 : サポートを有効
-c3:同期シーケンスをつけサポートを有効
-d数値DMAモードの有効/無効を設定
-d0:DMA無効
-d1:DMA有効

オプション-tTを使用して読み込み速度の計測をしてみます。

 

IDEインターフェースに対しては、hdparmコマンドを使用しますが、

UBS/SATA/SCSIディスクに対しては、sdparmコマンドを使用します。

sdparmコマンド

sdparmコマンドは、UBS/SATA/SCSIディスクの転送モードの設定や確認を行うコマンドになります。

sdparm [オプション] [デバイスファイル]

オプションは、hdparmと同じです。

オプションなし現在の設定の表示
-iハードディスクの詳細情報
-tバッファキャッシュを使わずに読み込み速度を計測
-Tバッファキャッシュを使用して読み込み速度を計測
-c 数値32bit I/Oサポートの有効/無効を設定
-c0 : サポートを無効
-c1 : サポートを有効
-c3:同期シーケンスをつけサポートを有効
-d数値DMAモードの有効/無効を設定
-d0:DMA無効
-d1:DMA有効

例として、ディスクキャッシュを無効にしてみます。

補足:IDEの転送モード

メインメモリとハードディスクのデータ転送方法として、PIOモードとDMAモードの2種類あります。

PIO(Programmed I/O)モード

PIOモードはCPUがハードディスクに直接命令を送ってデータを転送する方法です。

この方法は、データの読み書きが実行されている間は、他の処理にプロセスを回せないという欠点があります。

DMA(Direct Memory Access)モード

DMAモードは、CPUに代わって他の専用コントローラチップがデータ転送の管理をするため、CPUの処理の占有をすることなく、データの読み書きを行うことができます。

一般的にはDMAモードが使用されます。(現在は、Ultra DMA)

参考にした資料

 

 

 

コメント

  1. […] 【Linux】ストレージ管理コマンド hdparm・sdparmLinuxでストレージ管理コマンドについてです。ハードディスクのベンチマークを調べるときなど、使えそうなコマンドだったのでまとめまし […]

タイトルとURLをコピーしました