CONTENTS


Lastmodified 2017-04-01 (土) 17:37:14


G7 FreeBSD9.1R-p3

ML110 G7 OSレスモデル 6473360-AHZN (HP(旧コンパック))のデフォルトMemoryは2GB、HDD250GB

2013年6月1日現在の時点で当該モデル上でZFSrootな環境では、リブートに失敗する。っていうかシャットダウン出来ない。

http://www.nekolove.jp/wp/archives/2012/11/20121108105449.php

そこで、システムはUFSで、ユーザのデータ(/usr/home)はZFSで行くことにする。

デフォルト同梱の250GBのHDDへ、FreeBSD9.1RをDVD1を用いて普通に?UFSででインストール。このとき、一般ユーザを作らなければ/usr/homeはない。

root@g7:/boot/zfs # df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ada0p2    220G    3.6G    199G     2%    /
devfs          1.0k    1.0k      0B   100%    /dev

の様になっている。勿論、/以下には、/usr/home やリンクはない。

で、ここで500GBのHDD3基を残りのベイに挿して、

zpool create tank raidz1 ada1 ada2 ada3

する。と、

root@g7:/boot/zfs # zpool status
  pool: tank
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            ada1    ONLINE       0     0     0
            ada2    ONLINE       0     0     0
            ada3    ONLINE       0     0     0

errors: No known data errors

このtankを/usr/homeにする

g7# zfs set mountpoint=/usr/home tank

流儀に則ってリンクを作る

g7# ln -s /usr/home/ /home

と、こうなる

root@g7:/boot/zfs # df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ada0p2    220G    3.6G    199G     2%    /
devfs          1.0k    1.0k      0B   100%    /dev
tank           912G     40k    912G     0%    /usr/home

で、これだけだと、rebootすると、

messagesにこんなログも吐いて

Jun  1 12:48:43 g7 kernel: ZFS NOTICE: Prefetch is disabled by default if less than 4GB of RAM is present;
Jun  1 12:48:43 g7 kernel: to enable, add "vfs.zfs.prefetch_disable=0" to /boot/loader.conf.
Jun  1 12:48:43 g7 kernel: ZFS filesystem version 5
Jun  1 12:48:43 g7 kernel: ZFS storage pool version 28

/usr/home がdfで見えなくなります。

Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ada0p2    220G    3.6G    199G     2%    /
devfs          1.0k    1.0k      0B   100%    /dev

このとき、

g7# cd /boot/zfs
g7# zpool export tank
g7# zpool import tank

すれば、

tank           912G     40k    912G     0%    /usr/home

が再び現れます。(^_^;


コレの回避策は、4GB以上メモリーを積むか、

/boot/loader.conf

vfs.zfs.prefetch_disable=0

のどちらか・・・です。

というのは、ウソでした(^^ゞ

8GBのメモリーを積んでみました。起動時に

ZFS NOTICE: Prefetch is disabled by default if less than 4GB of RAM is present;

というログは消えましたが、

root@G7:/dev # df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ada0p2    220G    3.5G    199G     2%    /
devfs          1.0k    1.0k      0B   100%    /dev
tank           912G     40k    912G     0%    /usr/home

最下段のtankの行は出てきません。/etc/fstabに書くのかな・・・じゃなくて(^^ゞ

https://www.bsdconsulting.co.jp/DOWNLOAD/FREEBSDSTUDY-013.SATO.pdf

によれば、

/etc/fstab は見ない。

/etc/rc.conf

zfs_enable="YES"

/boot/loader.conf

zfs_load="YES"

を書くべし。とのことでした。

要するに、カーネルモジュールを自分で明示的に起動しなさい、ということでした(^^ゞ

GEOM: ada1: the primary GPT table is corrupt or invalid.

買ったばかりのHDDをベイに挿しただけだと、/var/log/messages にこんな・・・

Jun  6 18:04:18 G7 kernel: GEOM: ada1: the primary GPT table is corrupt or invalid.
Jun  6 18:04:18 G7 kernel: GEOM: ada1: using the secondary instead -- recovery strongly advised.
Jun  7 06:37:48 G7 kernel: GEOM: ada2: the primary GPT table is corrupt or invalid.
Jun  7 06:37:48 G7 kernel: GEOM: ada2: using the secondary instead -- recovery strongly advised.
Jun  7 06:37:48 G7 kernel: GEOM: ada3: the primary GPT table is corrupt or invalid.
Jun  7 06:37:48 G7 kernel: GEOM: ada3: using the secondary instead -- recovery strongly advised.
Jun  7 06:37:48 G7 kernel: Trying to mount root from ufs:/dev/ada0p2 [rw]...

なんかマズイ風味

root@G7:/root # gpart show /dev/ada1
gpart: No such geom: /dev/ada1.

確かに、GPT table ありません。

root@G7:/root # gpart create -s gpt ada1
gpart: geom 'ada1': Operation not permitted

あれ?

root@G7:/root # gpart create -s gpt /dev/ada1
gpart: geom 'ada1': Operation not permitted

ん?こういうのは、これで良かった様な・・・

root@G7:/root # sysctl kern.securelevel
kern.securelevel: -1
root@G7:/root # sysctl kern.geom.debugflags=0x10
kern.geom.debugflags: 0 -> 16

これでどうだ?

root@G7:/root # gpart create -s gpt /dev/ada1
ada1 created

できたヽ(^。^)丿

root@G7:/root # gpart create -s gpt /dev/ada2
ada2 created
root@G7:/root # gpart create -s gpt /dev/ada3
ada3 created

他のも出来たので、

root@G7:/root # sysctl kern.geom.debugflags=0
kern.geom.debugflags: 16 -> 0

と元へとかえす。ちょっと強引だったか(^^ゞ


HDDの物理的ベイとデバイス認識のズレ

システムは、、/dev/ada0上にあって、物理的には一番ベイにある。で、ada1~3の三基のHDDでraidz1を組むということなのだけど、実際にHDDを2番ベイに一基増やすと、

Jun  6 10:04:49 G7 kernel: ada0 at ata2 bus 0 scbus0 target 0 lun 0
Jun  6 10:04:49 G7 kernel: ada0: <VB0250EAVER HPG9> ATA-8 SATA 2.x device
Jun  6 10:04:49 G7 kernel: ada0: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
Jun  6 10:04:49 G7 kernel: ada0: 238475MB (488397168 512 byte sectors: 16H 63S/T 16383C)
Jun  6 10:04:49 G7 kernel: ada0: Previously was known as ad4
Jun  6 10:04:49 G7 kernel: ada1 at ata2 bus 0 scbus0 target 1 lun 0
Jun  6 10:04:49 G7 kernel: ada1: <WDC WD5000AZLX-00K4KA0 80.00A80> ATA-8 SATA 3.x device
Jun  6 10:04:49 G7 kernel: ada1: 600.000MB/s transfers (SATA 3.x, UDMA5, PIO 8192bytes)
Jun  6 10:04:49 G7 kernel: ada1: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)

の様になる。で、その隣の3番ベイにHitachのHDDをさすと・・・

Jun  6 10:04:49 G7 kernel: ada0 at ata2 bus 0 scbus0 target 0 lun 0
Jun  6 10:04:49 G7 kernel: ada0: <VB0250EAVER HPG9> ATA-8 SATA 2.x device
Jun  6 10:04:49 G7 kernel: ada0: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
Jun  6 10:04:49 G7 kernel: ada0: 238475MB (488397168 512 byte sectors: 16H 63S/T 16383C)
Jun  6 10:04:49 G7 kernel: ada0: Previously was known as ad4
Jun  6 10:04:49 G7 kernel: ada1 at ata2 bus 0 scbus0 target 1 lun 0
Jun  6 10:04:49 G7 kernel: ada1: <Hitachi HDP725050GLA360 GM4OA52A> ATA-8 SATA 2.x device
Jun  6 10:04:49 G7 kernel: ada1: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
Jun  6 10:04:49 G7 kernel: ada1: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)
Jun  6 10:04:49 G7 kernel: ada1: Previously was known as ad5
Jun  6 10:04:49 G7 kernel: ada2 at ata3 bus 0 scbus1 target 0 lun 0
Jun  6 10:04:49 G7 kernel: ada2: <WDC WD5000AZLX-00K4KA0 80.00A80> ATA-8 SATA 3.x device
Jun  6 10:04:49 G7 kernel: ada2: 600.000MB/s transfers (SATA 3.x, UDMA5, PIO 8192bytes)
Jun  6 10:04:49 G7 kernel: ada2: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)
Jun  6 10:04:49 G7 kernel: ada2: Previously was known as ad6
Jun  6 11:18:19 G7 kernel: ada0 at ata2 bus 0 scbus0 target 0 lun 0
Jun  6 11:18:19 G7 kernel: ada0: <VB0250EAVER HPG9> ATA-8 SATA 2.x device
Jun  6 11:18:19 G7 kernel: ada0: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
Jun  6 11:18:19 G7 kernel: ada0: 238475MB (488397168 512 byte sectors: 16H 63S/T 16383C)
Jun  6 11:18:19 G7 kernel: ada0: Previously was known as ad4
Jun  6 11:18:19 G7 kernel: ada1 at ata2 bus 0 scbus0 target 1 lun 0
Jun  6 11:18:19 G7 kernel: ada1: <Hitachi HDP725050GLA360 GM4OA52A> ATA-8 SATA 2.x device
Jun  6 11:18:19 G7 kernel: ada1: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
Jun  6 11:18:19 G7 kernel: ada1: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)
Jun  6 11:18:19 G7 kernel: ada1: Previously was known as ad5
Jun  6 11:18:19 G7 kernel: ada2 at ata3 bus 0 scbus1 target 0 lun 0
Jun  6 11:18:19 G7 kernel: ada2: <WDC WD5000AZLX-00K4KA0 80.00A80> ATA-8 SATA 3.x device
Jun  6 11:18:19 G7 kernel: ada2: 600.000MB/s transfers (SATA 3.x, UDMA5, PIO 8192bytes)
Jun  6 11:18:19 G7 kernel: ada2: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)
Jun  6 11:18:19 G7 kernel: ada2: Previously was known as ad6
Jun  6 11:18:19 G7 kernel: ada3 at ata3 bus 0 scbus1 target 1 lun 0
Jun  6 11:18:19 G7 kernel: ada3: <Hitachi HDP725050GLA360 GM4OA5CA> ATA-8 SATA 2.x device
Jun  6 11:18:19 G7 kernel: ada3: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
Jun  6 11:18:19 G7 kernel: ada3: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)
Jun  6 11:18:19 G7 kernel: ada3: Previously was known as ad7

こうなってしまう。WDのHDDが、ada1からada2に変わっている。自動認識した順番だそうな・・・(´・ω・`)

トラブル時などに混乱しないように、物理的ベイと一致させて固定化したい所。

http://wiki.rookie-inc.com/os/nas4free/fixdevicenum

http://www.freebsd.org/doc/ja/books/handbook/device-hints.html

http://wirednoize.net/freebsd/index.php?FreeBSD%208.2%20Release%20AHCI%20to%20CAM

device.hintsに記述して、デバイス番号を固定化するヨロシ

hint.scbus.0.at="ahcich10"
hint.ada.0.at="scbus0"
hint.scbus.1.at="ahcich11"
hint.ada.1.at="scbus1"
hint.scbus.0.at="ahcich12"
hint.ada.2.at="scbus0"
hint.scbus.1.at="ahcich13"
hint.ada.3.at="scbus1"
echo 'hint.scbus.0.at="ahcich0"' >> /boot/device.hints
echo 'hint.ada.0.at="scbus0"'    >> /boot/device.hints
echo 'hint.scbus.1.at="ahcich1"' >> /boot/device.hints
echo 'hint.ada.1.at="scbus1"'    >> /boot/device.hints
echo 'hint.scbus.2.at="ahcich2"' >> /boot/device.hints
echo 'hint.ada.2.at="scbus2"'    >> /boot/device.hints
echo 'hint.scbus.3.at="ahcich3"' >> /boot/device.hints
echo 'hint.ada.3.at="scbus3"'    >> /boot/device.hints
echo 'hint.scbus.4.at="ahcich4"' >> /boot/device.hints
echo 'hint.ada.4.at="scbus4"'    >> /boot/device.hints
echo 'hint.scbus.5.at="ahcich5"' >> /boot/device.hints
echo 'hint.ada.5.at="scbus5"'    >> /boot/device.hints

Total access 3989:本日 2:昨日 1

Counter: 3989, today: 2, yesterday: 1

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS