~nabeken/diary/

Gentoo Linux(6年くらい)とFreeBSD(1年くらい)とOpenBSD(新参者)を使う日々。


IHANet BGP peering overview

Core i3 540 + DH55TC + PMP(MG-SA1443) + FreeBSD 8.1-RELEASEでストレージサーバ

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)

dmesgの全文

使用中のディスクが容量が揃っていないため揃っているものを使って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