5.3. 記憶装置へのアクセス
5.3.1. デバイスファイル
記憶装置のデバイスファイルは以下の通り。
| デバイスファイル | 説明 | 
|---|---|
| /dev/hda | IDEプライマリマスタに接続されたドライブ | 
| /dev/hdb | IDEプライマリスレーブに接続されたドライブ | 
| /dev/hdc | IDEセカンダリマスタに接続されたドライブ | 
| /dev/hdd | IDEセカンダリスレーブに接続されたドライブ | 
| /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/SATA/USB CD/DVDドライブ | 
| /dev/sr1 | 2番目のSCSI/SATA/USB CD/DVDドライブ | 
| /dev/st0 | 1番目のSCSIテープドライブ | 
| /dev/st1 | 2番目のSCSIテープドライブ | 
カーネル2.6.21以降はIDEデバイスもSCSIデバイスと同じ扱いになったため、IDEハードディスクも/dev/sdNといったデバイス名になる。
5.3.2. ハードディスクの管理
ハードディスクは5つのタイプに分かれる。
- SATA(Serial ATA)
- SCSI
- SAS
- USB
- IEEE1394
Linuxの場合、SATAハードディスクもSCSIハードディスクとして扱われる。
なおKernel 2.6.21以降では基本的にすべてのハードディスクは/dev/sd*と扱われる。
IDEの転送モードにはメインメモリとハードディスクとの転送方式としてPIOモードとDMAモードがある。
- PIOモード … CPUがハードディスクに直接命令してデータを転送する方式。欠点はデータ読み書き中はCPUは他の処理を実行できない点がある
- DMAモード … CPUとは異なり専用のコントローラがデータの伝送を管理する。現在一般的な手法。
Ultra DMA は従来のDMAを拡張した企画で高速転送速度をサポートしている。
なおUltra DMAの利用はハードディスク/マザーボードのチップ/BIOSが対応している必要がある。
hdparmコマンド
DMAモード、IDEハードディスクのパラメータを確認/設定できるコマンド。
オプションなしでは適用されているパラメータを表示する。
hdparm [オプション] [デバイスファイル]| オプション | 説明 | 
|---|---|
| -i | ハードディスクの詳細情報確認 | 
| -I | ドライブから直接情報を得る | 
| -c数値 | 32bit I/Oサポート(0:無効化、1:有効化、3:同期シーケンス付きで有効化) | 
| -d数値 | DMAモードの使用不使用を指定 (0:無効化,1:有効化) | 
| -W数値 | ライトキャッシュのON/OFF(0:無効化,1:有効化) | 
| -t | バッファキャッシュを使わずに読み込み速度を計測する | 
| -T | バッファキャッシュの読み込み速度をテストする | 
sdramコマンド
SCSI/SATA/USBディスクに対してDMAモード、IDEハードディスクのパラメータを確認/設定できるコマンド。
オプションなしでは適用されているパラメータを表示する。
sdparm [オプション] [デバイスファイル]
sdparm --conmmand=stop [デバイスファイル] # ディスク回転の停止
sdparm --clear=WCE [デバイスファイル] # ディスクキャッシュの無効化scsi_idコマンド
SCSI接続の記憶装置のWWIDの確認を行えるコマンド。
scsi_id5.3.3. SSDの管理
SSDはHDDと異なりフラッシュメモリであるためHDDと削除動作が異なる。
SSDはデータを削除しても削除フラグが付けられるだけでデータは削除されない。
削除した箇所に再度書き込みを行う場合は、データを消去して書き込みを行う必要がある。
そのため長時間SSDを利用すると再利用ブロック(削除フラグが付いたブロック)が増えていくにつれてパフォーマンスが低下する。
なおNVMeという新しい規格がSSDでは利用できる。
またNVMeはPCI Express バスから SSD に接続するための規格である。
Trimという機能を使うことでブロックデータも削除するため速度低下が起こりにくくなる。
Trimの実行にはfstrimコマンドを実行する。
Trimの確認は以下コマンドで行う。
hdparm -I /dev/sda | grep TRIMまた、SSDには書き換え回数の上限があるため頻繁に書き込まないように以下内容に注意する。
- スワップ領域をSSD上に作成しない
- noatimeオプションをつけてファイルシステムにマウントする
- 頻繁に書き込まれる/tmpなどはRAMディスクを利用する
fstrimコマンド
Trimの実行を行うコマンド。
ファイルシステムで使用していない領域を破棄できる。
fstrim -v /NVMe
NVMeはSSD接続のための PCI Expressベースのインターフェイス規格。
AHCIと比べ、SSDの性能を十分に発揮できる。
AHCI
AHCIは、IDEに比べてはるかに高速なSATAを活かせるインターフェース仕様として登場した規格。
インテルが策定している。
IDEとの互換性を重視したSATAの規格SATA1.0では速度より互換性が重視され、性能は犠牲となったが、SATA2.0でAHCIは規格化され、SATA本来の機能・性能を満たすことができるようになった。
5.3.4. iSCSI
iSCSIはTCP/IP上でSCSIプロトコルを利用できるようにする仕組み。
クライアント/サーバモデルを採用している。
iSCSIによりネットワーク上のストレージをローカルストレージのように利用できる。
SANを構築できる。
LinuxにおいてはIETやLIO TargetでiSCSIターゲット(iscSIストレージ)を構築できる。
なおデータの要求端末(クライアント)はiSCSIイニシエータと呼ばれる。
| 用語 | 説明 | 
|---|---|
| ターゲット | iSCSIストレージ | 
| イニシエータ | iSCSIクライアント | 
| LUN | ストレージ内の論理ドライブ番号(記憶装置の識別番号) | 
| HBA | NICに相当するインターフェイスアダプタ | 
| WWID / WWN | MACAddressに相当する識別ナンバー | 
なお設定ファイルはiscsid.confとなる。
iscsiadmコマンド
iscsiadm [オプション]| オプション | 説明 | 
|---|---|
| -m / –mode [モード] | モードの指定(discovery: 接続先のiSCSIターゲットの取得, node: 登録済みisCSIターゲットの取得, session: セッション一覧の取得) | 
| -l / –login | iscsiターゲットにログイン | 
| -u / –logout | iscsiターゲットからログアウト | 
| -t / –type | タイプの指定 | 
| -p / –portal=IPアドレス[:ポート] | 接続先の指定 | 
| -T / –targetname=IQN | iSCSIターゲットの指定 | 
SAN
SAN(Storage Area Network)はストレージ専用のネットワークを使用してストレージにアクセスする技術。
物理接続にファイバチャネル、接続にSANスイッチが使用される。