![]() |
ファイルシステムについて |
Linux(CentOS)で使用するファイルシステム
ファイルシステム名 | 概要 | 実行空間 |
CFS:the Cryptographic Filesystem | local loopback NFSマウントにより既存ファイルシステムの一部を暗号化する。アルゴリズムを数種類から選択可能 | ユーザ空間 |
dm-crypt | ブロックデバイスに対して暗号化する | カーネル空間 |
eCryptfs | ||
ブロックデバイスなので、ディスクパーティション自体に暗号化を行います。(例:/dev/sda3)
そこで、まず専用のパーティションを作成します。不良セクタチェック後、パーティションをランダムデータで埋めて(セキュリティ強度を向上するため)、cryptsetupコマンドでパーティションを暗号化します。
暗号化したパーティションを、Device Mapperでマッピングします。
cryptsetupコマンドを使用し、使用する暗号アルゴリズム、鍵長、対象デバイスファイル名を指定します。
暗号には、カーネルが提供するアルゴリズムを指定できます。
# cryptsetup -y luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 /dev/sdb1 WARNING! ======== This will overwrite data on /dev/sdb1 irrevocably. Are you sure? (Type uppercase yes): YES Enter LUKS passphrase: Verify passphrase: Command successful. #
YESはプロンプトにあるとおり、大文字で入力する必要があります。パスフレーズは忘れると大変です。
# cryptsetup luksOpen /dev/sdb1 encdisk Enter LUKS passphrase: key slot 0 unlocked. Command successful. # ls /dev/mapper control encdisk VolGroup00-LogVol00 VolGroup00-LogVol01 #
ここでは、マッピングされたデバイス /dev/mapper/encdiskに対してext3でファイルシステムを作成します。
/sbin/mke2fsコマンドを使用します。
# mke2fs -j /dev/mapper/encdisk mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 524288 inodes, 1047976 blocks 52398 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1073741824 32 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 36 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. #
# mkdir /mnt/edisk # mount /dev/mapper/encdisk /mnt/edisk # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 9014656 1071392 7477960 13% / /dev/sda1 101086 11705 84162 13% /boot tmpfs 257764 0 257764 0% /dev/shm /dev/mapper/encdisk 4126048 73804 3842652 2% /mnt/edisk #
IDEのハードディスクに関するパラメータを表示・設定するコマンドです。
チューニング前に、使用するHDDがサポートする機能を確認します。
# hdparm -i /dev/hda /dev/hda: Model=IC35L120AVV207-0, FwRev=V24OA63A, SerialNo=xxxxxxxxxxxxxxxx Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=52 BuffType=DualPortCache, BuffSize=1821kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=241254720 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 *udma2 udma3 udma4 udma5 AdvancedPM=yes: disabled (255) WriteCache=enabled Drive conforms to: ATA/ATAPI-6 T13 1410D revision 3a: ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6 * signifies the current active mode
DMA modesで、DMA転送設定の機能有無、UDMA modesで、UATAの種類が分かります。
udma2: Ultra ATA/33, udma4: Ultra ATA/66, udma5: Ultra ATA/100, udma6: Ultra ATA/133
現在のLinuxドライバのDMA転送設定の有効無効を確認します。
# hdparm /dev/hda /dev/hda: multcount = 16 (on) IO_support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 1 (on) keepsettings = 0 (off) readonly = 0 (off) readahead = 256 (on) geometry = 16383/255/63, sectors = 241254720, start = 0
上記で下線を引いたusing_dmaの値がonかoffでDMA設定の有効無効が確認できます。
DMA設定を変更するには、hdparmコマンドの-dオプションを使います。
# hdparm -d1 /dev/hda
# hdparm -d0 /dev/hda
DMA転送設定で見たDMA以外の項目も実際のHDDによってチューニング可能です。
EIDEの32ビットI/Oサポートを指定します。
IO_supportの値 | 内容 |
0 | 32ビットI/Oを無効(16ビット使用) |
1 | 32ビットI/Oを有効 |
3 | 32ビット同期I/Oを有効 |
昨今のHDDなら、3の32ビット同期I/Oか?
# hdparm -c3 /dev/hda
HDDへのコマンド中(待ち時間)に、他の割り込みに対する応答を許す/許さない。
unmaskirqの値 | 内容 |
0 | ディスク割り込み処理中に他の割り込みのマスクを解除しない |
1 | ディスク割り込み処理中に他の割り込みのマスクを解除可能 |
ディスクI/O中に他の割り込みを許可することでLinuxの応答性を改善することができますが、ディスクのアクセス性能が改善するわけではありません。
# hdparm -u1 /dev/hda
HDDとの転送に使用するモードを詳細指定します。
転送モード | 指定値 | 転送モード | 指定値 |
PIO Mode 0 | 08 | Ultra DMA Mode 0 | 64 |
PIO Mode 1 | 09 | Ultra DMA Mode 1 | 65 |
PIO Mode 2 | 10 | Ultra DMA Mode 2(UATA/33) | 66 |
PIO Mode 3 | 11 | Ultra DMA Mode 3 | 67 |
PIO Mode 4 | 12 | Ultra DMA Mode 4(UATA/66) | 68 |
Single word DMA Mode 0 | 16 | Ultra DMA Mode 5(UATA/100) | 69 |
Single word DMA Mode 1 | 17 | Ultra DMA Mode 6(UATA/133) | 70 |
Single word DMA Mode 2 | 18 | ||
Multi word DMA Mode 0 | 32 | ||
Multi word DMA Mode 1 | 33 | ||
Multi word DMA Mode 2 | 34 |
# hdparm -X66 /dev/hda
ディスクのアクセス速度を計測するには、hdparmコマンドの-tTオプションを使います。
# hdparm -tT /dev/hda /dev/hda: Timing cached reads: 640 MB in 2.00 seconds = 320.06 MB/sec Timing buffered disk reads: 80 MB in 3.04 seconds = 26.31 MB/sec