Posted on Wed Aug 04 00:08:41 +0900 2010 by nabeken
前回の検証がうまくいったのでさっそくちゃんとしたハードウェアで本番運用することになりました。
用意したのは以下の構成。
CPU: Intel Core i3 540 (3.07GHz)
Mem: DDR3-1333 2GB x2
M/B: BOXDH55TC
PMP: MG-SA1443
PMPは以前Linuxで検証したものです。 FreeBSDで使うにはloader.confに設定が必要です。
siis0: <SiI3132 SATA controller> port 0xe000-0xe07f mem 0xfe484000-0xfe48407f,0xfe480000-0xfe483fff irq 16 at device 0.0 on pci2
siis0: [ITHREAD]
siisch0: <SIIS channel> at channel 0 on siis0 ★ eSATA2ポートの1つ目
siisch0: [ITHREAD]
siisch1: <SIIS channel> at channel 1 on siis0 ★ eSATA2ポートの2つ目
siisch1: [ITHREAD]
pmp0 at siisch1 bus 0 scbus1 target 15 lun 0 ★ 2つ目から来たPMP
pmp0: <Port Multiplier 37261095 1706> ATA-0 device
pmp0: 300.000MB/s transfers (SATA 2.x, NONE, PIO 8192bytes)
pmp0: 5 fan-out ports
ada0 at siisch1 bus 0 scbus1 target 0 lun 0
ada0: <WDC WD10EADS-22M2B0 01.00A01> ATA-8 SATA 2.x device
ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)
ada1 at siisch1 bus 0 scbus1 target 1 lun 0
ada1: <Hitachi HDT721010SLA360 ST6OA3AA> ATA-8 SATA 2.x device
ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada1: Command Queueing enabled
ada1: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)
ada2 at siisch1 bus 0 scbus1 target 2 lun 0
ada2: <Hitachi HDT721010SLA360 ST6OA3AA> ATA-8 SATA 2.x device
ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada2: Command Queueing enabled
ada2: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)
ada3 at siisch1 bus 0 scbus1 target 3 lun 0
ada3: <WDC WD20EARS-00S8B1 80.00A80> ATA-8 SATA 2.x device
ada3: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada3: Command Queueing enabled
ada3: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
ada4 at siisch1 bus 0 scbus1 target 4 lun 0
ada4: <WDC WD20EARS-00MVWB0 50.0AB50> ATA-8 SATA 2.x device
ada4: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada4: Command Queueing enabled
ada4: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
使用中のディスクが容量が揃っていないため揃っているものを使ってraidzを構成することにしました。
まずは500GB x3でraidzを構成し、/にしました。
# zpool iostat -v tank
capacity operations bandwidth
pool used avail read write read write
------------- ----- ----- ----- ----- ----- -----
tank 205G 1.15T 378 397 27.9M 39.1M
raidz1 205G 1.15T 378 397 27.9M 39.1M
gpt/disk0 - - 150 182 9.59M 19.6M
gpt/disk1 - - 151 182 9.74M 19.6M
gpt/disk2 - - 149 182 9.46M 19.6M
------------- ----- ----- ----- ----- ----- -----
# zfs list -r tank
NAME USED AVAIL REFER MOUNTPOINT
tank 303G 605G 283M legacy
tank/bacula 87.0G 605G 87.0G /srv/bacula
tank/srv 199G 605G 311M /srv
tank/srv/backup 199G 605G 199G /srv/backup
tank/srv/portage 312M 605G 312M /srv/portage
tank/tmp 34.6K 605G 34.6K /tmp
tank/tmproot 3.36G 605G 3.34G /tmproot
tank/usr 1.90G 605G 1.04G /usr
tank/usr/home 775K 605G 775K /usr/home
tank/usr/ports 878M 605G 736M /usr/ports
tank/usr/ports/distfiles 142M 605G 142M /usr/ports/distfiles
tank/usr/ports/packages 24.0K 605G 24.0K /usr/ports/packages
tank/var 689M 605G 688M /var
tank/var/empty 24.0K 605G 24.0K /var/empty
tank/var/log 303K 605G 303K /var/log
tank/var/tmp 25.3K 605G 25.3K /var/tmp
残りのディスクは容量稼ぎにすべて普通にzpoolへ投入します(= concatenate)。おもにTSファイルがごろごろ転がる予定です。 ただ、現在のzfs(solarisも同様)は一度追加したトップレベルなdeviceはremoveできない制限があるのでやたらめったに追加するのは避けるべきでしょう。 (LVMだと領域に余裕があればpvmoveしてからvgreduce→pvremoveでディスクごと外せます)
うちだと、PMPの上限である10台を目処に運用予定です。ただ、10台を単純にconcatするのはいくら容量稼ぎだとしても運用的にあまりよろしくなさそうです…。
# zpool iostat -v storage0
capacity operations bandwidth
pool used avail read write read write
---------------- ----- ----- ----- ----- ----- -----
storage0 3.17T 3.18T 0 20 22.7K 2.17M
gpt/storage0-1 1.49T 327G 0 4 8.05K 489K
gpt/storage0-2 928G 186M 0 0 3.23K 2.68K
gpt/storage0-3 786G 1.05T 0 6 11.4K 734K
gpt/storage0-4 886M 927G 0 6 14 719K
gpt/storage0-5 871M 927G 0 6 14 714K
---------------- ----- ----- ----- ----- ----- -----
# zfs list -r storage0
NAME USED AVAIL REFER MOUNTPOINT
storage0 3.17T 3.08T 4.58G /srv/storage
storage0/recordings 1.92T 3.08T 1.92T /srv/storage/recordings