【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

mint@mint-VirtualBox:~$ sudo apt install hdparm

sdparm

mint@mint-VirtualBox:~$ sudo apt install sdparm

hdparmコマンド

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

hdparm [オプション] [デバイスファイル]
sudo hdparm /dev/sda

/dev/sda:
 multcount     = 128 (on)
 IO_support    =  1 (32-bit)
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 2088/255/63, sectors = 33554432, start = 0

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

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

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

mint@mint-VirtualBox:~$ sudo hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   12382 MB in  2.00 seconds = 6203.85 MB/sec
 Timing buffered disk reads: 438 MB in  3.02 seconds = 145.16 MB/sec

 

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

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

sdparmコマンド

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

sdparm [オプション] [デバイスファイル]
mint@mint-VirtualBox:~$ sudo sdparm /dev/sdb
    /dev/sdb: JetFlash  Transcend 16GB    1100
Caching (SBC) mode page:
  WCE         0  [cha: n, def:  0, sav:  0]
  RCD         0  [cha: n, def:  0, sav:  0]
Informational exceptions control mode page:
  EWASC       0  [cha: n, def:  0, sav:  0]
  DEXCPT      1  [cha: y, def:  1, sav:  1]
  MRIE        0  [cha: n, def:  0, sav:  0]

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

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

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

mint@mint-VirtualBox:~$ sudo sdparm --clear=WCE /dev/sdb

補足: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をコピーしました