「記憶装置へのアクセス」の編集履歴(バックアップ)一覧はこちら
記憶装置へのアクセス - (2014/03/02 (日) 15:55:16) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
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コマンドを使います。
[[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
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コマンドを使います。
[[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
表示オプション
横に並べて表示:
変化行の前後のみ表示: