#chiroito ’s blog

Java を中心とした趣味の技術について

ZFS on Solaris 11 Expressストレージサーバの移行

 自宅インフラの整理に伴いSolaris 11 Expressで動いているZFSのストレージプールを移行してみました。移行元で使用していたpoolのstorageの移行と、移行元では冗長化していなかったrpoolのミラーリングを行います。

環境

 移行元も移行先もOSはSolaris 11 Expressを使用しています。OSは新規インストールしています。 移行元
  • Athlon 64 X2 3800+
  • M3A78-VM
  • DDR2 5GB(2GB×2+512MB×2)
  • HDD×5(内1つがrpool、4つがstorage)
移行先
  • Intel Core 2 Quad 9400S
  • P5Q-EM
  • DDR2 12GB(4GB×2+2GB×2)
  • HDD×6(内2つがrpool、4つがstorage)

移行前作業

 移行元サーバではpoolのexportを行います。(やり忘れても大丈夫です)
[root@storage] zpool export storage

移行作業

 移行元からHDDを取り外して移行先へ取り付けます。

移行後作業

 ディスクの確認を行います。5番のHDD(c11d0)にOSがインストールされており、0~3番のHDDは移行元でstorageという名前のpoolを構成していました。
[root@storage] format
Searching for disks...
Failed to inquiry this logical diskFailed to inquiry this logical diskdone

AVAILABLE DISK SELECTIONS:
0. c8d0
/pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0
1. c8d1
/pci@0,0/pci-ide@1f,2/ide@0/cmdk@1,0
2. c9d0
/pci@0,0/pci-ide@1f,2/ide@1/cmdk@0,0
3. c9d1
/pci@0,0/pci-ide@1f,2/ide@1/cmdk@1,0
4. c10d0 < cyl 60797 alt 2 hd 255 sec 63>
/pci@0,0/pci-ide@1f,5/ide@0/cmdk@0,0
5. c11d0 < cyl 60797 alt 2 hd 255 sec 63>
/pci@0,0/pci-ide@1f,5/ide@1/cmdk@0,0
Specify disk (enter its number):
[root@storage] zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
rpool 464G 10.2G 454G 2% 1.00x ONLINE -
[root@storage] zpool status rpool
pool: rpool
state: ONLINE
scan: none requested
config:

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

errors: No known data errors
 4番のHDD(c10d0)を使用してrpoolをミラーリングします。

[root@storage] prtvtoc /dev/rdsk/c11d0s0 | fmthard -s - /dev/rdsk/c10d0s0
[root@storage] zpool attach rpool c11d0s0 c10d0s0
[root@storage] installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c10d0s0
stage2 written to partition 0, 277 sectors starting at 50 (abs 16115)
stage1 written to partition 0 sector 0 (abs 16065)
 次に移行元で使用していたpoolのstorageをimportします。

[root@storage] zpool import storage
 移行元でexportをし忘れた場合は-fオプションを付与してください。

おまけ

 移行元ではstorageをCIFSで共有していたため移行先でも同様に共有します。pool側の設定は移行元で完了しているはずなので、移行先では認証系の設定だけを行えば完了です。

[root@storage] cat >> /etc/pam.conf

other password required pam_smb_passwd.so.1 nowarn
[root@storage] passwd ユーザ名