記憶装置へのアクセス


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

1、デバイスファイル

Linuxでは、ハードディスクなどの記憶装置へのアクセスはデバイスファイルを通じて行われます。
主な記憶装置のデバイスファイルは次の表のとおりです。

主なデバイスファイル

デバイスファイル 説明
/dev/hda プライマリマスターに接続されたドライブ
/dev/hdb プライマリスレーブに接続されたドライブ
/dev/hdc セカンダリマスターに接続されたドライブ
/dev/hdd セカンダリスレーブに接続されたドライブ
/dev/sda 1番目のSCSI/SATA/USB/IEEE1394デバイス
/dev/sdb 2番目のSCSI/SATA/USB/IEEE1394デバイス
/dev/sdc 3番目のSCSI/SATA/USB/IEEE1394デバイス
/dev/sdd 4番目のSCSI/SATA/USB/IEEE1394デバイス
/dev/sr0 1番目のSCSI CD/DVDドライブ
/dev/sr1 2番目のSCSI CD/DVDドライブ
/dev/st0 1番目のSCSIテープドライブ
/dev/st1 2番目のSCSIテープドライブ

なお、カーネル2.6.21以降はlibataが導入され、IDEデバイスもSCSIデバイスと同じ扱いになりました。
つまり、IDEハードディスクも/dev/sda、/dev/sdbといったデバイスファイル名になります。

2、ハードディスクの管理
ハードディスクは、大きく分けて以下のタイプに分かれます。
  • IDE(ATA)
  • SATA(Serial ATA)
  • SCSI
  • SAS(Serial Attached SCSI)
  • USB
  • IEEE1394

LinuxではIDE以外のハードディスクはすべてSCSIデバイスとして扱います。
つまり、SATAハードディスクもSCSIハードディスクとして扱われます。
前述のとおり、カーネル2.6.21以降では基本的にすべてのハードディスクが"/dev/sd"として扱われます。

IDEの転送モードには、メインメモリとハードディスクとのデータ転送方法として、
PIO(Programmed I/O)モードとDMA(Direct Memory Access)モードがあります。
 PIOモードは、CPUがハードディスクに直接命令してデータを転送する方法です。
そのため、データの読み書きが行われている間は、CPUは他の作業ができないという欠点があります。
 DMAモードでは、CPUに代わって専用のコントローラチップがデータの転送を管理します。
このため、CPUへの負担は少なくなるので、現在ではDMAモードを使うのが一般的です。

 Ultra DMAは、従来のDMAを拡張した規格で、高速な転送速度をサポートしています。
Ultra DMAを利用するには、ハードディスク、マザーボードのチップセット、BIOSがそれぞれ
Ultra DMAに対応している必要があります。DMAモードなどIDEハードディスクのパラメータを確認したり、
設定したりするには、hdparmコマンドを使います。


次の例では、/dev/hdaに適用されているパラメータを表示します。
# hdparm /dev/hda

/dev/hda:
 multcount = 61 (on)
 IO_S\support = 0 (default 16-bit)
 unmaskirq = 0 (off)
 using_dma = 1 (on)
 keepsettings = 0 (off)
 readonly = 0 (off)
 readahead = 256 (on)
 geometry = 24792/255/63 , sectors = 203928109056, start = 0

32ビットI/Oサポートは、PCIバスからIDEインターフェースへのデータ転送方法を表します。
using_dmaはDMAの有効/無効を意味し、DMAモードが有効になっていれば、ディスクのパフォーマンスは大きく向上します。

※ハードウェア的に対応していない項目を有効にすると、システムがハングアップすることがあります。
また、システム構成に照って最適な値は異なります。
実際利用するにあたっては、ハードウェアの対応を確認し、manマニュアルを熟読してください

次は、32ビットI/Oサポートを有効にしています。
# hdparm -c3 /dev/hda

/dev/hda:
 setting 32-bit IO_support flag to 3
 IO_support = 3 (32-bit w/sync)

次は、読み込み速度を計測するによって、性能評価をしています。
# hdparm -tT /dev/hda

/dev/hda:
Timing cached reads: 1572 MB in 2.01 seconds = 783.77 MB/sec
Timing buffered disk reads: 174 MB in 3.02 seconds = 57.62 MB/sec
|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|