tips
- How to use ATA_
CAM ATAをCAMに統合する開発が進められています。ATAをCAMのインターフェースで統一して扱えるようになる以外にも、
AHCI to CAMでネイティブコマンドキューのサポートが進むことになるといった性能面での向上も期待されます。 最新のFreeBSD 9-CURRENTや8-STABLEでこうした機能が試せます。本稿では、
FreeBSD 9-CURRENTや8-STABLEでこうした機能を有効にする方法方を紹介します。なお、 ATA_ CAMについてはFreeBSD committerである重村氏の次のドキュメントに要点がまとめられています。 AHCI to CAMやATA to CAMを有効にするには、
次のようにカーネルオプションを指定してカーネルを再構築します。 リスト AHCI to CAMを有効にしてネイティブコマンドキューを利用する場合の設定例 - ATAPIのCD/ DVDデバイスは変更しないでそのまま使うケース # enable - ATA and ATAPI CD/
DVD device device ata device atapicd # ATAPI CDROM drives options ATA_ STATIC_ ID # Static device numbering # disable - ATA disks and others nodevice atadisk # ATA disk drives nodevice ataraid # ATA RAID drives nodevice atapifd # ATAPI floppy drives nodevice atapist # ATAPI tape drives # enable - AHCI to CAM device ahci # AHCI リスト ATA to CAMを利用する場合 # disable - ATA and ATAPI devices nodevice ata nodevice atadisk # ATA disk drives nodevice ataraid # ATA RAID drives nodevice atapicd # ATAPI CDROM drives nodevice atapifd # ATAPI floppy drives nodevice atapist # ATAPI tape drives nooptions ATA_
STATIC_ ID # Static device numbering # enable - ATA to CAM device atacore # Core ATA functionality device atapci # PCI bus support; only generic chipset support device ataintel # Intel options ATA_ CAM リスト AHCI to CAMとATA to CAMを両方とも利用する場合 # disable - ATA and ATAPI devices nodevice ata nodevice atadisk # ATA disk drives nodevice ataraid # ATA RAID drives nodevice atapicd # ATAPI CDROM drives nodevice atapifd # ATAPI floppy drives nodevice atapist # ATAPI tape drives nooptions ATA_
STATIC_ ID # Static device numbering # enable - AHCI to CAM device ahci # AHCI # enable - ATA to CAM device atacore # Core ATA functionality device atapci # PCI bus support; only generic chipset support device ataintel # Intel options ATA_ CAM IDEモードで認識されるSATA HDDと、
AHCI / SATAネイティブモードで認識されるデバイス名は異なります。たとえばIDEモードでは 「/dev/ ad0」 で認識されている場合、 AHCI / SATAネイティブモード on ATAでは 「/dev/ ad6」 のように認識され、 これがAHCI / ATA to CAMでは 「/dev/ ada0」 のように認識されます。デバイス名、 デバイス番号ともにかわりますので、 システムを再起動する前に/etc/ fstabを編集してください。編集を忘れた場合や間違えた場合にはLiveCDからシステムを起動して編集するか、 ATA to CAM integrationに挑戦で説明されている要領でシステムを起動して編集して使います。次に認識されるデバイス名の例を列挙します。 - SATA
(IDEモード) on ATA - /dev/ ad0 - SATA
(ネイティブモード) on ATA - /dev/ ad6 (M/ Bによっては別の番号になります) - SATA to CAM - /dev/
ada0 - AHCI to CAM - /dev/
ada0
AHCI to CAMやATA to CAMが有効になった場合のシステム起動時の出力例を次に示します。
リスト 認識されたAHCIコントローラとチャンネル ahci0: <Intel ICH10 AHCI SATA controller> port 0xf900-0xf907,0xf800-0xf803,0xf700-0xf707,0xf600-0xf603,0xf500-0xf51f mem 0xfdffd000-0xfdffd7ff irq 19 at device 31.
2 on pci0 ahci0: [ITHREAD] ahci0: AHCI v1. 20 with 6 3Gbps ports, Port Multiplier supported ahcich0: <AHCI channel> at channel 0 on ahci0 ahcich0: [ITHREAD] ahcich1: <AHCI channel> at channel 1 on ahci0 ahcich1: [ITHREAD] ahcich2: <AHCI channel> at channel 2 on ahci0 ahcich2: [ITHREAD] ahcich3: <AHCI channel> at channel 3 on ahci0 ahcich3: [ITHREAD] ahcich4: <AHCI channel> at channel 4 on ahci0 ahcich4: [ITHREAD] ahcich5: <AHCI channel> at channel 5 on ahci0 ahcich5: [ITHREAD] リスト AHCI to CAMで認識されたSATAドライブ - デバイス名が 「ad」 ではなく 「ada」 になっているところに注目 ada0 at ahcich0 bus 0 scbus0 target 0 lun 0 ada0: <ST3250620AS 3.
AAC> ATA-7 SATA 2. x device ada0: 300. 000MB/ s transfers (SATA 2. x, UDMA6, PIO size 8192bytes) ada0: Command Queueing enabled ada0: 238474MB (488395055 512 byte sectors: 16H 63S/ T 16383C) リスト ATA to CAMで認識されたCD/ DVDドライブ - デバイス名が 「acd」 ではなく 「cd」 で認識されているところに注目 cd0 at ata2 bus 0 scbus0 target 0 lun 0 cd0: <HL-DT-ST DVDRAM GSA-4163B A100> Removable CD-ROM SCSI-0 device cd0: 33.
300MB/ s transfers (UDMA2, PIO size 65534bytes) cd0: Attempt to query device size failed: NOT READY, Medium not present AHCI to CAMやATA to CAMで認識されたデバイスはSCSIデバイスのようにcamcontrol(8)で制御できます。
camcontrol(8)でATA to CAMのデバイスを制御する例 # camcontrol devlist <HL-DT-ST DVDRAM GSA-4163B A100> at scbus0 target 0 lun 0 (cd0,pass0) <ST3250620AS 3.
AAC> at scbus2 target 0 lun 0 (pass1,ada0) # camcontrol tags 2:0:0 (pass1:ahcich0:0:0:0): device openings: 32 # camcontrol readcap 2:0:0 (pass1:ahcich0:0:0:0): READ CAPACITY(10). CDB: 25 0 0 0 0 0 0 0 0 0 (pass1:ahcich0:0:0:0): CAM Status: SCSI Status Error (pass1:ahcich0:0:0:0): SCSI Status: Check Condition # camcontrol eject 0:0:0 Unit stopped successfully, Media ejected # camcontrol load 0:0:0 Unit started successfully, Media loaded # 開発段階でまだどうなるかわかりませんが、
FreeBSD 8. 1-RELEASEでは少なくともオプションを指定してカーネルを再構築することで利用できるようになるとみられます。デフォルトで有効になるのは9系になる可能性があります。ネイティブコマンドキューイングを有効にするとon ATAのときとはIO性能に違いが現れます。パフォーマンスチューニングはさらにこれから取り組まれることになるため、 現状よりも性能の改善が期待できるとみられます。 - SATA