2012年12月16日日曜日

備忘録:ZFSルートのバックアップ手順

1. バックアップ用領域の作成

 % sudo zpool create -f backup c4t1d0s0 

 % zpool list
 NAME     SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
 backup  15.9G   126K  15.9G   0%  1.00x  ONLINE  -
 rpool   15.9G  5.22G  10.7G  32%  1.00x  ONLINE  -


2. ルートプールのプロパティを確認(ファイルに保存した方が良いかも)


 % zpool get all rpool 
 NAME   PROPERTY       VALUE                 SOURCE
 rpool  size           15.9G                 -
 rpool  capacity       32%                   -
 rpool  altroot        -                     default
 rpool  health         ONLINE                -
 rpool  guid           7318362038220972324   -
 rpool  version        33                    default
 rpool  bootfs         rpool/ROOT/solaris-1  local
 rpool  delegation     on                    default
 rpool  autoreplace    off                   default
 rpool  cachefile      -                     default
 rpool  failmode       wait                  default
 rpool  listsnapshots  off                   default
 rpool  autoexpand     off                   default
 rpool  dedupditto     0                     default
 rpool  dedupratio     1.00x                 -
 rpool  free           10.7G                 -
 rpool  allocated      5.22G                 -
 rpool  readonly       off                   -

3. ルートプールの容量確認

 % zpool list rpool
 NAME    SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
 rpool  15.9G  5.22G  10.7G  32%  1.00x  ONLINE  -

4. ルートプールのコンポーネントを特定(ファイルに保存した方が良いかも)

 % zfs list -r rpool
 NAME                       USED  AVAIL  REFER  MOUNTPOINT
 rpool                     5.29G  10.3G  46.5K  /rpool
 rpool/ROOT                2.97G  10.3G    31K  legacy
 rpool/ROOT/solaris        5.58M  10.3G  1.61G  /
 rpool/ROOT/solaris-1      2.96G  10.3G  1.62G  /
 rpool/ROOT/solaris-1/var   571M  10.3G   364M  /var
 rpool/ROOT/solaris/var    2.86M  10.3G   203M  /var
 rpool/dump                1.29G  10.4G  1.25G  -
 rpool/export               140K  10.3G    32K  /export
 rpool/export/home          108K  10.3G    32K  /export/home
 rpool/export/home/koji    76.5K  10.3G  76.5K   /export/home/koji
 rpool/swap                1.03G  10.4G  1.00G  -

5. ルートプールの再起的なスナップショットを作成

 % NOW=`date +%Y%m%d_%H%M%S`
 % sudo zfs snapshot -r rpool@rpool.${NOW}
 % zfs list -t snapshot
 NAME                                             USED  AVAIL    REFER  MOUNTPOINT
 rpool@rpool.20121216_115705                         0      -    46.5K  -
 rpool/ROOT@rpool.20121216_115705                    0      -    31K  -
 rpool/ROOT/solaris@rpool.20121216_115705            0      -    1.61G  -
 rpool/ROOT/solaris-1@install                    9.14M      -    1.40G  -
 rpool/ROOT/solaris-1@2012-12-07-02:16:10         179M      -    1.61G  -
 rpool/ROOT/solaris-1@rpool.20121216_115705          0      -    1.62G  -
 rpool/ROOT/solaris-1/var@install                 146M      -     215M  -
 rpool/ROOT/solaris-1/var@2012-12-07-02:16:10    18.1M      -     383M  -
 rpool/ROOT/solaris-1/var@rpool.20121216_115705      0      -     364M  -
 rpool/ROOT/solaris/var@rpool.20121216_115705        0      -     203M  -
 rpool/dump@rpool.20121216_115705                    0      -    1.25G  -
 rpool/export@rpool.20121216_115705                  0      -    32K  -
 rpool/export/home@rpool.20121216_115705             0      -    32K  -
 rpool/export/home/koji@rpool.20121216_115705        0      -    76.5K  -
 rpool/swap@rpool.20121216_115705                    0      -    1.00G  -

6. swap及び、dumpのスナップショットを削除

 % sudo zfs destroy rpool/dump@rpool.${NOW}
 % sudo zfs destroy rpool/swap@rpool.${NOW}
 % zfs list -t snapshot                              
 NAME                                             USED  AVAIL    REFER  MOUNTPOINT
 rpool@rpool.20121216_115705                         0      -    46.5K  -
 rpool/ROOT@rpool.20121216_115705                    0      -    31K  -
 rpool/ROOT/solaris@rpool.20121216_115705            0      -    1.61G  -
 rpool/ROOT/solaris-1@install                    9.14M      -    1.40G  -
 rpool/ROOT/solaris-1@2012-12-07-02:16:10         179M      -    1.61G  -
 rpool/ROOT/solaris-1@rpool.20121216_115705          0      -    1.62G  -
 rpool/ROOT/solaris-1/var@install                 146M      -     215M  -
 rpool/ROOT/solaris-1/var@2012-12-07-02:16:10    18.1M      -     383M  -
 rpool/ROOT/solaris-1/var@rpool.20121216_115705  76.5K      -     364M  -
 rpool/ROOT/solaris/var@rpool.20121216_115705        0      -     203M  -
 rpool/export@rpool.20121216_115705                  0      -    32K  -
 rpool/export/home@rpool.20121216_115705             0      -    32K  -
 rpool/export/home/koji@rpool.20121216_115705        0      -    76.5K  -

7. スナップショットをバックアップディスクに格納

 % sudo sh -c "zfs send -Rv rpool@rpool.${NOW} | gzip >/backup/rpool.${NOW}.gz" 
 sending from @ to rpool@rpool.20121216_115705
 WARNING: could not send rpool/swap@rpool.20121216_115705: does  not exist
 sending from @ to rpool/export@rpool.20121216_115705
 sending from @ to rpool/export/home@rpool.20121216_115705
 sending from @ to rpool/export/home/koji@rpool.20121216_115705
 sending from @ to rpool/ROOT@rpool.20121216_115705
 sending from @ to rpool/ROOT/solaris-1@install
 sending from @install to rpool/ROOT/solaris-1@2012-12-07-02:16:10
 sending from @2012-12-07-02:16:10 to rpool/ROOT/solaris-1@rpool.20121216_115705
 sending from @ to rpool/ROOT/solaris-1/var@install
 sending from @install to rpool/ROOT/solaris-1/var@2012-12-07-02:16:10
 sending from @2012-12-07-02:16:10 to rpool/ROOT/solaris-1/var@rpool.20121216_115705
 WARNING: could not send rpool/dump@rpool.20121216_115705: does  not exist
 sending from @ to rpool/ROOT/solaris@rpool.20121216_115705
 sending from @ to rpool/ROOT/solaris/var@rpool.20121216_115705
 % ls -hl /backup 
 total 2214377
 -rw-r--r--   1 root     root        1.1G 12月 16日  12:12  rpool.20121216_115705.gz

ZFSルートシステムのバックアップとリストア

Solaris 11 カルチャーショックの第四弾。

ZFSルートのシステムにおける、システムバックアップとリストアの手順については、Oracleの公式ドキュメントに詳しく記載されているので、そちらを参照して頂くとして、保存媒体をどうすべきかということを考えてみたい。


まず、Solaris 11の前はどのようにしていたかを振り返ってみよう。

PRIMEPOWERシリーズの場合、DATドライブを内蔵していることが多く、ufsdumpコマンドでDATテープにバックアップイメージを保存することが、通常の手段であった。

ところが、SPARC Enterprise Tシリーズの登場後、DATドライブの搭載が出来ない、インストールメディアにテープデバイスのドライバが含まれなくなった等の要因が有り、テープ媒体への保存が最適な手段とは言えなくなった。
取り得る手段は以下のようなものが考えられる。


  1. 運用システムとは別に、回復システムを構築し、バックアップ領域用に搭載したHDDにufsdumpイメージを保存する。
  2. テープドライブのドライバをインストールした回復システムを構築し、外付けテープドライブにufsdumpイメージを保存する。
  3. ETERNUSシリーズを利用したSAN Boot環境とし、ディスクアレイ装置のスナップショット機能(アドバンスト・コピー)を利用する。
実際の運用に用いたことはないが、USB HDDへのufsdumpイメージ保存という手段も利用可能だろう。


それでは、Solaris 11 の ZFSルート環境ではどうであろうか?

まず、上記 1. の手段。
ufsdumpコマンドが利用できないため、zfs snapshot コマンドで代替することになると思われる。
さらに、回復システムが必要かという点も考慮が必要であろう。

では、2. の手段はどうか。
zfs snapshot コマンドが、テープドライブをサポートしない以上、利用することは不可能であり、候補にはなり得ない。

最後に、3. の手段。
これは、そのまま適用できるだろう。
しかしながら、SAN Boot 環境となると、それなりの初期投資が必要となることから、適用可能なプロジェクトは限られるものと思われる。


災害対策用として、バックアップメディアを複数用意していた場合(テープの遠隔地保存等)はどうか。

この場合は、USB HDDの利用も大きな選択肢となるのではないか。もちろん、内蔵HDDに保存したスナップショットを、リートシステムに転送するという手段も考えられる。が、転送先にもZFSを利用可能なシステムが必要となり、初期投資がネックになると考えられる。
ただし、スナップショットを保存するためのシステムと考えず、通常時は試験環境として利用し、災害発生時は代替システムとして本番運用に利用するという用い方には適しているのではないだろうか。


ufssump/ufsrestoreを用いたバックアップ・リストアと比較し、選択肢が増えたと言えるが、適材適所での提案が必要になると言うことだろう。

2012年12月15日土曜日

ZFSルートとfuser

Solaris 11 カルチャーショックの第三弾。

Solaris 10 (の初期リリースのみ??)でよく遭遇した、システム停止(再起動)時のこのメッセージ。

 umount: / busy


当時サポートに問い合わせて、対処方法を探ったような記憶がある。
psコマンドと、fuserコマンドを利用して、当該ファイルシステムを使用しているプロセスを特定して下さい、と言われたような...
(結局、「システムの再起同時にfsckが走らなければ影響はないです」だって?)

そんな問題に遭遇した場合、ZFSルートのシステムではどうするの?
てことで、こんな環境で試してみた。


 % zfs list
 NAME                       USED  AVAIL  REFER  MOUNTPOINT
 rpool                     5.29G  10.3G  46.5K  /rpool
 rpool/ROOT                2.96G  10.3G    31K  legacy
 rpool/ROOT/solaris        5.58M  10.3G  1.61G  /
 rpool/ROOT/solaris-1      2.96G  10.3G  1.62G  /
 rpool/ROOT/solaris-1/var   570M  10.3G   363M  /var
 rpool/ROOT/solaris/var    2.86M  10.3G   203M  /var
 rpool/dump                1.29G  10.4G  1.25G  -
 rpool/export               138K  10.3G    32K  /export
 rpool/export/home          106K  10.3G    32K  /export/home
 rpool/export/home/koji    73.5K  10.3G  73.5K  /export/home/koji
 rpool/swap                1.03G  10.4G  1.00G  -

 % pwd
 /export/home/koji

 % ps
   PID TTY         TIME CMD
  1602 pts/1       0:00 zsh
  1610 pts/1       0:00 ps

 % fuser -c /export/home/koji 
 /export/home/koji:     1613c    1602c


ZFSルートだからといって、特別な挙動は見せないようですね。
zfsコマンドのサブコマンドでは取得できないようですし、今までと同じ管理手順を利用できると分かり、一安心です。


2012年12月10日月曜日

Solarisカルチャーショックのお話 - システムディスクmirror編 -

Solaris 11 で体験したカルチャーショック その2。
本日のお題は、「システムディスクのmirror設定」です。

通常、システムの耐障害性を向上させるため、システムディスク(OSがインストールされているハードディスク)はRAID1(ミラーリング)構成とされます。

Solaris 10 までの場合、ルートファイルシステムは(よっぽど変わり者でない限り)UFSとなります。この場合、RAID1構成とするには、別途Solistice DiskSuiteや、PRIMECLUSTER Global Disk Services等のソフトを利用することとなります。
ところが、Solaris 11 から ZFSルートがデフォルトとなったため、上記のオプションソフトを利用せずにRAID1構成が可能となりました。簡単に出来そうなのですが、ちょっとした落とし穴もあるため、以下に設定手順を整理しておきます。
 ※インストール時にRAID1構成を指定可能なのかは、検証していません。


インストール直後は、システムディスクは単独構成となっているため、ミラー用のディスクを追加する必要があります。
まずは、現状の状態確認を行います。

 % zpool status rpool
   pool: rpool
  state: ONLINE
   scan: none requested
 config:

         NAME        STATE     READ WRITE CKSUM
         rpool       ONLINE       0     0     0
           c4t0d0s0  ONLINE       0     0     0

rpoolは、c4t0d0s0単独で構成されている状態です。
ここに、ミラー用のディスクを追加することとなりますが、追加するために若干の作業(ミラー先ディスクに、ラベル付けを行っておく)が必要となります。


 % sudo format
 
 Searching for disks...done
 
 AVAILABLE DISK SELECTIONS:
        0. c4t0d0 <ATA-VBOX HARDDISK-1.0 cyl 2085 alt 2 hd 255 sec 63>
           /pci@0,0/pci1000,8000@16/sd@0,0
        1. c4t1d0 <VBOX-HARDDISK-1.0 cyl 2086 alt 2 hd 255 sec 63>
           /pci@0,0/pci1000,8000@16/sd@1,0
 Specify disk (enter its number): 1

ミラー先ディスクは、c4t1d0になるので、「1」を入力する。


 selecting c4t1d0
 [disk formatted]
 No Solaris fdisk partition found.

 FORMAT MENU:
         disk       - select a disk
         type       - select (define) a disk type
         partition  - select (define) a partition table
         current    - describe the current disk
         format     - format and analyze the disk
         fdisk      - run the fdisk program
         repair     - repair a defective sector
         label      - write label to the disk
         analyze    - surface analysis
         defect     - defect list management
         backup     - search for backup labels
         verify     - read and display labels
         save       - save new disk/partition definitions
         inquiry    - show disk ID
         volname    - set 8-character volume name
         !<cmd>     - execute <cmd>, then return
         quit
 format> fdisk


fdiskパーティションの作成を行うため、「fdisk」と入力する。



 No fdisk table exists. The default partition for the disk is:
 
   a 100% "SOLARIS System" partition
 
 Type "y" to accept the default partition,  otherwise type "n" to edit the
  partition table.
 y

「y」を入力し、ディスク全体を、Solarisパーティションとする。


 format> partition

スライス設定のため「partition」と入力する。

 
 PARTITION MENU:
         0      - change `0' partition
         1      - change `1' partition
         2      - change `2' partition
         3      - change `3' partition
         4      - change `4' partition
         5      - change `5' partition
         6      - change `6' partition
         7      - change `7' partition
         select - select a predefined table
         modify - modify a predefined partition table
         name   - name the current table
         print  - display the current table
         label  - write partition map and label to the disk
         !<cmd> - execute <cmd>, then return
         quit
 partition> 0

スライス0に全領域を割り当てるため、「0」を入力する。


 Part      Tag    Flag     Cylinders        Size            Blocks
   0 unassigned    wm       0               0         (0/0/0)           0
 
 Enter partition id tag[unassigned]: 
 Enter partition permission flags[wm]: 
 Enter new starting cyl[0]:
 Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]: 2085c
 partition> p
 Current partition table (unnamed):
 Total disk cylinders available: 2085 + 2 (reserved cylinders)
 
 Part      Tag    Flag     Cylinders        Size            Blocks
   0 unassigned    wm       0 - 2084       15.97GB    (2085/0/0) 33479460
   1 unassigned    wm       0               0         (0/0/0)           0
   2     backup    wu       0 - 2084       15.97GB    (2085/0/0) 33495525
   3 unassigned    wm       0               0         (0/0/0)           0
   4 unassigned    wm       0               0         (0/0/0)           0
   5 unassigned    wm       0               0         (0/0/0)           0
   6 unassigned    wm       0               0         (0/0/0)           0
   7 unassigned    wm       0               0         (0/0/0)           0
   8 unassigned    wu       0               0         (0/0/0)       0
   9 unassigned    wm       0               0         (0/0/0)           0


スライス0に全領域が割り当てられたことを確認。

 
 partition> label
 Ready to label disk, continue? y


変更をディスクに書き込むため「label」と入力する。

 
 partition> q
  
 FORMAT MENU:
         disk       - select a disk
         type       - select (define) a disk type
         partition  - select (define) a partition table
         current    - describe the current disk
         format     - format and analyze the disk
         fdisk      - run the fdisk program
         repair     - repair a defective sector
         label      - write label to the disk
         analyze    - surface analysis
         defect     - defect list management
         backup     - search for backup labels
         verify     - read and display labels
         save       - save new disk/partition definitions
         inquiry    - show disk ID
         volname    - set 8-character volume name
         !<cmd>     - execute <cmd>, then return
         quit
 format> q

ミラー先ディスクの準備が整ったので、いよいよミラー化の実施です。


 % sudo zpool attach -f rpool c4t0d0s0 c4t1d0s0
 Make sure to wait until resilver is done before rebooting.


RAID1構成となったこと及び、コピーの進捗確認は、以下のコマンドで。

 % zpool status rpool
   pool: rpool
  state: ONLINE
 status: One or more devices is currently being resilvered.  The pool will
         continue to function, possibly in a degraded state.
 action: Wait for the resilver to complete.
   scan: resilver in progress since Mon Dec 10 13:08:06 2012
     223M scanned out of 5.22G at 2.17M/s, 0h39m to go
     223M resilvered, 4.18% done
 config:

         NAME          STATE     READ WRITE CKSUM
         rpool         ONLINE       0     0     0
           mirror-0    ONLINE       0     0     0
             c4t0d0s0  ONLINE       0     0     0
             c4t1d0s0  ONLINE       0     0     0  (resilvering)

 errors: No known data errors



ミラー先ディスクの事前準備を忘れた場合は、s0が存在しないため、cXtXdXで指定することになるが、その場合、以下のエラーが発生するので注意すること。

 % sudo zpool attach rpool c4t0d0 c4t1d0

 cannot label 'c4t1d0': EFI labeled devices are not supported on root pools.


zpool の attach コマンドで、"-f" オプションを指定しなかった場合は、こちらのエラーが...

 % sudo format zpool attach rpool c4t0d0s0 c4t1d0s0

 invalid vdev specification
 use '-f' to override the following errors:
 /dev/dsk/c4t1d0s0 overlaps with /dev/dsk/c4t1d0s2


Solistic DiskSuiteやPRIMECLUSTER GDSよりも、かなり簡単な作業でRAID1構成とすることが可能と感じた。


-- 2012年12月10日 17時15分 追記 --

上記手順だけでは、ミラー先ディスクから起動できません。
ブートローダーをインストールしましょう。 :-)


手元に、Sparc環境がないので、x86環境のみですが....


まずは、boot archive の更新のため、システムをリブート(もちろん、bootadmコマンドで更新してもOKですが、環境変更後も起動が可能であることを確認する意味もあるため、リブートを推奨)。

  % sudo shutdown -i6 -g0 -y


無事起動できたら、ブートローダーをミラー先ディスクにインストール。

 % sudo bootadm install-bootloader c4t1d0s0


正常に終了したら、一度システムを停止。



ミラー元ディスク(例の場合、c4t0d0)をアクセスできない状態にして、システムを起動。
無事に起動すれば、設定完了だ。
システムを停止して、ミラー元ディスクをアクセス可能な状態にしておこう。

2012年12月7日金曜日

Solarisカルチャーショックのお話 - ipadmコマンド編 -

和歌山の地方ISPに転職し、Solarisから遠ざかること2年と10ヶ月弱。
その間に、Solaris 11 11/11がリリースされ、先日は、ついにバージョン表記が変更となる 、Solaris 11.1がリリースされた。
またまた、Solarisメインの職業に復帰することになり、新しいバージョンでの変更点確認や、操作の勘を取り戻すため、VirtualBox上に環境構築しようと思い立ったまではよかったが...

Solaris 11で経験した、カルチャーショック( :-P )をあげてみる。


  • ZFSルートがデフォルトになっていた :-O
  • /etc/hostname.IF ファイルが存在しない (ipadmで管理する)
  • Boot Environment ってなに?
  • root の デフォルトシェルが "bash" に変更された


現在のところ、こんなものだけれど、まだまだたくさん出てくるのだろうな :-(


で、ipadm。

インストール時にプライマリインターフェイスとして選択した、ホストオンリーアダプタについては、設定が実施され通信可能(当然ですね)だが、外部に出て行くことが出来ない状態だった(これも当然ですね)。
/etc/hostファイルにエントリーを追加して、/etc/hostname.IF ファイルを作ったらリブートしてOKじゃん、なんて安易に考えていました...

そういえば、DHCPの定義ってどうするんだっけ? と。ホストオンリーアダプタの設定方法をまねれば問題ないね、と安易に考えていましたよ。

 % ifconfig -a

して、インターフェイス名を確認(net2だった)。

 % cat /etc/hostname.net2
 cat: cannot open /etc/hostname.net2: No such file or directory

えっ!! hostname.IF ファイルがない?!

そいじゃ、どうやってネットワーク設定するんだよ (怒
てことで、Google先生にお伺いしました。ふむふむ、ipadmコマンドとやらを使うのね。
で、こんな感じで設定してみた。

1. インターフェイスの作成。ifconfig plumb相当?
 % sudo ipadm create-ip net0

2.net0 が作成されたことを確認。
 % ifconfig -a

3.net0 をDHCPで構成する。
 % sudo ipadm create-addr -T dhcp net0/v4dhcp

4.net0 にIPアドレスが割り当てられていることを確認。
 % ifconfig -a

5.net0 にデフォルトゲートウェイが割当られている。
 % netstat -rn


以上で、無事外部と通信できるようになった。
ちなみに、sudoコマンドを使用しているけれど、Solaris 11的には、pfexec ~なんだろうね :-)

2012年10月2日火曜日

自宅サーバのお引っ越し その一

今年(2012年)の夏は、計画外停電が多く、UPSを使用していない自宅サーバには、「無事でいてくれてありがとう」と言いたい。

とは言え、いつも同じように無事でいられるとは限らないので、UPSの導入か、VPSサーバへ切り替えるかの選択を考えていたわけです。
初期費用が無料で、月額料金が1千円以下のVPSと言う条件(ASAHIネットの固定IP料金が、800円なので、月々の負担増加を最小限に抑えられることから)で、次の3件を候補とした。


  • KDDIウェブコミュニケーションズ(CloudCore VPS)
  • さくらインターネット(さくらのVPS 1G)
  • お名前.com(VPS(KVM) メモリ1GBプラン)

使用OSは、自宅サーバで利用してるNetBSDが第一希望だけれど、KVMとの相性は良くないことは承知の上で、挑戦してみることとした。


まずは、CloudCore VPS。
CPUがAMD製であることを認識した時点で、落ちてしまうことはとあるブログで確認してはいました。しかし、currentで修正されている可能性を信じ、Mountain Lionでクロスコンパイルを実施。もちろん、x86_errata()の処理には、手を加えてはいない状態です。
結果は、ごらんのとおり。


そのほかにも、ネームサーバを別途用意しなければいけないなど、料金的な魅力も打ち消されてしまい、CloudCoreは諦めることとした。


次は、さくらのVPS。
virtioを無効にするとか、SMP、ACPIを無効にして起動する必要があるとかいった情報もありましたが、最新のcurrent (6.99.11) では、何ら問題なく起動しました。


この後、インストールは正常に終了するが、起動時にカーネルを読み込めないとかの問題がありましたが、GPTからMBRに変更してあげることで、起動可能となった。


現在は、自宅サーバの環境を復元すべく、各種パッケージの導入中という状況。
とりあえず、さくらのVPSで走ってみるつもり。

2012年9月8日土曜日

YAMAHA RT57i でWAN側からのTELNETを有効にする

ちょっと悩みましたが、何とか解決。

  1. ログインパスワードを設定(必須ではないです :-P)
  2. Administratorパスワードを設定(必須ではないです :-P)
  3. 接続許可IPアドレスを指定して、TELNETサービスを有効化
  4. 静的マスカレードで、WAN側IPアドレスへのTELNET接続を、LAN側IPアドレスに振り向ける

以上で、WAN側からのTELNETが可能となりました。

マスカレードを利用するとは、思いつかなかったですね。
おかげで小一時間無駄に過ごしてしまったとさ。 :-)

2012年2月8日水曜日

CIFSとハードリンク

本日もTeraStationネタです。


現在、ファイルサーバの信頼性向上案件に携わっているのですが、
事の発端は、以下のような経緯でした。

誤ってファイルサーバ上のデータを、古いデータで上書きしてしまった
ため、ミラー側(このシステムは、rsyncで別サーバにミラーを行って
います)から復旧できないか、と相談を受けました。

連絡を頂いたタイミングでは、既にrsyncのコピーが走った後だった
ため、復旧は不可能である旨をお伝えしました。

そこから、一日単位でよいから、世代管理を出来ないかとご相談を頂き、
現在に至ります。

で、提案したのが、TeraStationを用いた世代管理(pdumpfsを利用)。

ファイルサーバが、CentOSだったため、mount.cifsコマンドでTeraStasionを
マウントし、pdumpfsでコピーするまではよかったのですが...

du -hs * で、日々のコピー要領を確認すると.....

Windowsでも、ハードリンクを扱えるようになっているはずですが、CIFS
では、?な使用量を報告され、一時パニック状態です。

CIFSって、ハードリンクの元(こういう表現が正しいのか疑問ですが)の
容量を参照してしまうようですね。
同領域をNFSマウントした場合は、想定どおりの結果を返してくれましたし、
TeraStationの設定画面で見える使用量は、NFSで確認した容量と
ほぼ一致していたため、CIFSのお馬鹿仕様と勝手に判断してしまいました。

このあたりに事情に詳しい方がいらっしゃいましたら、ご教示頂ければと、
切に願います。




て、なんて無責任で、他人だよりなブログエントリーですね ;-<

2012年1月15日日曜日

TeraStation はエンタープライズ用途に耐えるのか?

法人向け製品としてリリースされている、某社の「TeraStation」シリーズを、自宅に導入した。

某県庁からも、内部システムの代替機移行に際した、データ移行ワークディスクとして利用する
構想を聞かされているため、どの程度の柔軟性があるのかを確認してみた。

結論から言うと、そう言った用途に利用する場合、スクリプトなどの「作り込み」が必要となりそう。


先ず第一に、NFSの利用に制限があること。
LinuxにおけるNFSの実装上当然の使用なのですが、root 権限での書き込みが出来ない。
OSの環境を変更することが可能であれば、"no_root_squash"オプションを追加することで
回避可能なのですが...
ネット上には、TELNETデーモンを組み込んで、改変する手法が氾濫していますが、個人
利用ならともかく、保証が受けられなくなる改変を加えたものを利用するなど、信用問題と
なるのは必至。

では、CIFSではどうか。
NetBSD上で、"mount_smbfs"コマンドを利用し、共有領域をマウントした上で、pdumpfs
コマンドで、コピーを実施したところ...

       No buffer space available

エラーが発生。

検証した環境の問題かもしれないが、もう少し検証が必要という結論に。


今のところ、エンタープライズ用途には、適さないというのが、私の判断。
どうしても、TeraStation にこだわるのであれば、せめて iSCSI 機能を搭載したシリーズを
選定するべきですね。

2012年1月7日土曜日

性能試験の結果

先日の、某県庁での性能試験の結果ですが、想像どおり何も準備が
出来ておらず、試験準備で終わってしまいました。

テストシナリオはおろか、テスト計画すら策定できておりず、ヒアリング
から始める始末。さらには、JMeterの操作方法のレクチャーまで...

県職員とはいえ、"情報政策課"所属で、日々サーバの運用管理を
実施されているのですから、もう少し基礎知識的な部分があることを
期待していたのですが...

とは言え、簡単な試験で、DBサーバよりもWEBサーバが先に音を
上げる事が確認出来たので、少しは貢献できたかと思われる。
ついでに、アプリ開発者にDBに一番負荷がかかる操作はどういった
ものなのかも確認していますし、再試験の方向性については示せた
かと思う。

2012年1月3日火曜日

性能試験

明日は、某県庁より、WEBアプリ性能試験のお手伝いを依頼されている。

使用ツールは、Apache JMeter。
バックエンドのデータベースサーバに負荷をかけるのが目的だとか。

単純に負荷をかけるだけならば、更新系の処理を想定同時アクセス数(約3000)で
短時間に繰り返せばと思いますが、はたしてそれが利用実態に則しているのか、と
言うところが気に掛かる。

県庁側からは、利用実態の想定に関しては、何ら情報なし。
明日、現地でそのあたりをヒアリングしながら、プランとシナリオを作成することに
なるのかな。