MASUDAQ Blog

NO DEVELOPMENT NO LIFE.

Linux 統合サービス v2.1 の評価 IDE HDD 編

Linux Integration Services Version 2.1 for Microsoft Hyper-V の IDE ハードディスクサポートの評価情報を紹介する。

まずは、Linux 統合サービス v2.1 インストール前のハードディスクの情報を収集する。

以下は、ブートログの抜粋。

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
 PIIX4: IDE controller at PCI slot 0000:00:07.1
 PIIX4: chipset revision 1
 PIIX4: not 100% native mode: will probe irqs later
   ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:pio
   ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:DMA, hdd:pio
Probing IDE interface ide0...
hda: Virtual HD, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: Virtual CD, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda: 266334240 sectors (136363 MB) w/64KiB Cache, CHS=65535/16/63, DMA
  hda: hda1 hda2

/dev/hda を "Virtual HD, ATA DISK drive" として認識している。

/dev/hda デバイスの詳細は以下のとおり。

[root@centkun ~]# hdparm -i /dev/hda

/dev/hda:

 Model=Virtual HD, FwRev=1.1.0, SerialNo=
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=65024, SectSize=512, ECCbytes=0
 BuffType=DualPortCache, BuffSize=64kB, MaxMultSect=128, MultSect=128
 CurCHS=65278/16/255, CurSects=266334240, LBA=yes, LBAsects=266334240
 IORDY=on/off, tPIO={min:333,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes: pio0 pio1 pio2 pio3 pio4
 DMA modes: sdma0 sdma1 sdma2 mdma0 mdma1 *mdma2
 AdvancedPM=no

 * signifies the current active mode

DMA モードで動作していることがわかる。

/dev/hda デバイスのパフォーマンスは以下のとおり。

[root@centkun ~]# hdparm -t /dev/hda

/dev/hda:
 Timing buffered disk reads: 60 MB in 3.00 seconds = 19.97 MB/sec

次に Linux 統合サービス v2.1 インストール後の情報の収集を行う。

カーネルモジュール "blkvsc" の詳細は以下のとおり。
"blkvsc" は、"synthetic IDE disks" と "fastpath boot" をサポートするモジュール。

[root@centkun ~]# modinfo blkvsc
filename: /lib/modules/2.6.18-194.el5/kernel/drivers/vmbus/blkvsc.ko
version: 2.1.25
license: GPL
srcversion: F83F5BFB642CF459920A9F5
depends: scsi_mod,vmbus
vermagic: 2.6.18-194.el5 SMP mod_unload gcc-4.1
parm: blkvsc_ringbuffer_size:int

"scsi_mod" との依存関係があるので、SCSI もサポートされていることが推測される。
(今回は、評価対象を IDE のみとする。)

以下は、Linux 統合サービス v2.1 インストール後にリブート時のブートログの抜粋。

[root@centkun ~]# dmesg
.....
BLKVSC_DRV: Blkvsc initializing....
BLKVSC: max io outstd 226
VMBUS_DRV: child driver (ffffffff881cf020) registering - name blkvsc
.....
BLKVSC_DRV: blkvsc registered for major 3!!
 hda: hda1 hda2
BLKVSC_DRV: hda added!! capacity 266338304 sector_size 512

"blkvsc" がロードされており、/dev/hda を認識していることがわかる。

/dev/hda の詳細を出力する。

[root@centkun ~]# hdparm -i /dev/hda

/dev/hda:
 HDIO_GET_IDENTITY failed: Invalid argument

エラーが発生し、詳細情報を取得できなくなってしまった。

/var/log/message を確認する。

Aug 18 17:01:18 centkun smartd[2265]: Problem creating device name scan list
Aug 18 17:01:18 centkun smartd[2265]: Device: /dev/hda, opened
Aug 18 17:01:18 centkun smartd[2265]: Device: /dev/hda, not ATA, no IDENTIFY DEVICE Structure
Aug 18 17:01:18 centkun smartd[2265]: Device: /dev/hdc, opened
Aug 18 17:01:18 centkun smartd[2265]: Device: /dev/hdc, packet devices [this device CD/DVD] not SMART capable
Aug 18 17:01:18 centkun smartd[2265]: Monitoring 0 ATA and 0 SCSI devices

ディスク管理のデーモン "smartd" から、 "not ATA, no IDENTIFY DEVICE Structure" と出力されており、smartd は、ATA(IDE) として認識できなくなってしまっていることがわかる。

/dev/hda デバイスのパフォーマンスは以下のとおり。

[root@localhost ~]# hdparm -t /dev/hda

/dev/hda:
 Timing buffered disk reads: 112 MB in 3.01 seconds = 37.23 MB/sec

ディスクのパフォーマンスのみを比較すると、1.8 倍近くの向上が観察された。

(before) Timing buffered disk reads: 60 MB in 3.00 seconds = 19.97 MB/sec
(after)  Timing buffered disk reads: 112 MB in 3.01 seconds = 37.23 MB/sec

以上から、Linux 統合サービス v2.1 では、IDE ディスクのパフォーマンスは向上するが、smartd による管理ができなくなってしまう問題があることがわかった。

今後、"Fastpath boot"、"Synthetic Storage Controller(SCSI)" についても評価したいと考えている。

このエントリーをはてなブックマークに追加