OpenSolaris 2008.11 and ZFS Step-by-Step Hands-on Training using VirtualBox Yasuhiro Fujitsuki
Sun Microsystems K.K.
Section 1 : VirtualBox の Windows へのインストール
Sun Microsystems K.K.
3Sun Microsystems K.K.
OpenSolaris with VirtualBox 要件
• PC 本体はメモリ 1.5GB 以上を推奨
• OpenSolaris 用のメモリ> 768MB 以上
(512MB 等でも動作は可能 )> 1GB 以上の割り当てを推奨> 仮想マシンに割り当て可能な最大メモリの目安は
搭載メモリ -512MB 程度(同時起動アプリケーションなどに依存)
> 実メモリ不足が発生した場合、仮想マシンは一時停止する
• OpenSolaris 要件> ディスク 4GB 以上
> OpenSolaris 必須容量 3GB 以上( インストール時点で必須 )
> OpenSolaris 推奨容量 9GB 以上
> 可変容量の仮想ディスクを利用可能
4Sun Microsystems K.K.
VirtualBox のダウンロード• http://www.virtualbox.org/wiki/Downloads
32bit Windows 用64bit Windows 用
5Sun Microsystems K.K.
VirtualBox のインストール• インストーラ起動後、ウィザードに従ってインストール
ダウンロードファイル
インストールウィザード(起動直後)
Section 2 : VirtualBox のセットアップ - OpenSolaris 用の環境作成 -
Sun Microsystems K.K.
7Sun Microsystems K.K.
OpenSolaris 2008.11 用の環境
• メモリ 768 MB ( 可能であれば 1GB 以上を設定してください )
• インストール用ディスク 9GB> 可変容量の仮想ディスク> IDE 接続の HDD として登録
• ZFS テスト用ディスク 128MB を 7 本> SATA 接続の HDD として登録> RAID Z2(RAID 6 相当 )
> 4 + 2( パリティ )> HotSpare x1
*メモリ、ディスク容量は一例です。
8Sun Microsystems K.K.
VirtualBox の起動と仮想ディスクの作成
9Sun Microsystems K.K.
1 : VirtualBox メインビューの起動
デスクトップ上のアイコンをダブルクリックで起動
10Sun Microsystems K.K.
2 : 仮想メディアマネージャの起動
3: ディスク作成ウィザードの起動
11Sun Microsystems K.K.
4: 新規仮想ディスク作成ウィザード1• インストール領域の作成 1
12Sun Microsystems K.K.
5: 新規仮想ディスク作成ウィザード2• 可変サイズのストレージを選択
1
2
13Sun Microsystems K.K.
6: 新規仮想ディスク作成ウィザード3• 仮想ディスクファイル名、容量を指定
1
3
ここではOpenSolaris_System.vdiと指定
2
ここでは9.0GBと指定
14Sun Microsystems K.K.
7: 新規仮想ディスク作成ウィザード4• 容量、ファイル名の確認後、「完了」ボタンを押す
15Sun Microsystems K.K.
8: 新規仮想ディスク作成ウィザード5• 仮想ディスクの追加を確認
16Sun Microsystems K.K.
9: 新規仮想ディスク作成ウィザード6
• インストール用ディスクと同様に「新規仮想ディスク作成ウィザード」を利用し、ZFS テスト用のディスクを作成する> zfs01.vdi – zfs07.vdi> 可変サイズのストレージ> それぞれ 128MB ( 容量は任意 )
17Sun Microsystems K.K.
10: 新規仮想ディスク作成ウィザード7• 仮想ディスク作成後
18Sun Microsystems K.K.
VirtualBox へOpenSolaris 仮想マシンの登録を行う
19Sun Microsystems K.K.
1: 新規仮想マシン作成ウィザードの起動
20Sun Microsystems K.K.
2: 新規仮想マシン作成ウィザード1
21Sun Microsystems K.K.
3: 新規仮想マシン作成ウィザード2
1
3
仮想マシン名:ここではOpenSolaris 2008.11と指定
2
OS: Solarisバージョン :OpenSolarisと指定
• 仮想マシン名、 OS 、バージョンの設定
22Sun Microsystems K.K.
4: 新規仮想マシン作成ウィザード3
1
2
可能であれば1024MB 以上を推奨
• メモリサイズの指定
23Sun Microsystems K.K.
5: 新規仮想マシン作成ウィザード4
1
2
OpenSolaris_System.vdiを選択
• 起動ディスクの選択
24Sun Microsystems K.K.
6: 新規仮想マシン作成ウィザード5
1
2
OpenSolaris_System.vdiを選択
• 起動ディスクの選択
25Sun Microsystems K.K.
7: 新規仮想マシン作成ウィザード6• 設定の確認、仮想マシンの作成完了
26Sun Microsystems K.K.
8: 新規仮想マシン作成ウィザード7
OpenSolaris 2008.11が追加される
選択中の仮想マシンの設定が表示される
27Sun Microsystems K.K.
仮想マシンへの HDD の追加とインストール CD イメージの登録
28Sun Microsystems K.K.
1: 仮想マシンの詳細設定1
仮想マシンが選択されていることを確認し、設定ボタンをクリックする
現時点ではインストール用HDD イメージのみ
29Sun Microsystems K.K.
2: 仮想マシンの詳細設定2• 仮想マシン作成時の設定を変更することができます
実メモリの半分以上割り当てている場合に警告されますが、無視して構いません。
30Sun Microsystems K.K.
3: 仮想マシンの詳細設定3• 仮想ハードディスクの追加
ハードディスクを選択7 回押す(ZFS 用ディスクの追加 )
31Sun Microsystems K.K.
4: 仮想マシンの詳細設定4• 仮想ハードディスクの設定
SATA ポート 0-6 にzfs_disk01.vdi-zfs_disk_06.vdiを割り当てる
32Sun Microsystems K.K.
5: 仮想マシンの詳細設定5• 仮想 CD/DVD-ROM の設定
CD/DVD-ROM を選択
33Sun Microsystems K.K.
6: 仮想マシンの詳細設定6• 仮想 CD/DVD-ROM の設定 (ISO イメージを利用 )
1
2
仮想メディアマネージャを開き ,ISO イメージを登録
3
34Sun Microsystems K.K.
7: 仮想マシンの詳細設定7• 仮想メディアマネージャで ISO イメージを登録する
ファイルチューザを開き ,ISO イメージを選択
35Sun Microsystems K.K.
8: 仮想マシンの詳細設定8• ファイルチューザで ISO イメージを選択する
ISO イメージを選択
36Sun Microsystems K.K.
9: 仮想マシンの詳細設定9• 仮想メディアマネージャで登録したイメージを選択
ISO イメージを選択
37Sun Microsystems K.K.
10: 仮想マシンの詳細設定10• 仮想メディアマネージャで登録したイメージを選択
ISO イメージが選択されていることを確認
38Sun Microsystems K.K.
11: 仮想マシンの詳細設定11• 仮想ディスクを追加した後
ディスクイメージが追加されていることを確認
Section 3 : OpenSolaris のインストール
Sun Microsystems K.K.
40Sun Microsystems K.K.
OpenSolaris LiveCD 、インストーラの起動
41Sun Microsystems K.K.
1: 仮想マシンの起動
仮想マシンが選択されていることを確認し、起動ボタンをクリックする
42Sun Microsystems K.K.
2: 仮想マシンの起動2• キーボード・マウスのキャプチャの終了は右 Ctrl キー
43Sun Microsystems K.K.
3: 仮想マシンの起動3• BIOS 画面
44Sun Microsystems K.K.
4: 仮想マシンの起動4• Grub
一番上を選択する( 選択をしない場合、30 秒後に自動起動 )
45Sun Microsystems K.K.
5: 仮想マシンの起動5• キーボード選択
18 と入力( 日本語キーボード )
46Sun Microsystems K.K.
6: 仮想マシンの起動6• 言語を選択
12 と入力( 日本語 )
47Sun Microsystems K.K.
7: 仮想マシンの起動7• OpenSolaris(LiveCD) の起動
48Sun Microsystems K.K.
8: 仮想マシンの起動8• インストーラの起動
ダブルクリックでインストーラが起動
デバイスのサポート状況などの確認が行えます。
49Sun Microsystems K.K.
9: 仮想マシンの起動9• インストーラ
50Sun Microsystems K.K.
OpenSolaris のインストール
51Sun Microsystems K.K.
OpenSolaris の設定項目
✔ ディスク、パーティション設定✔ タイムゾーン・日付時刻の設定✔ ロケールの設定✔ ユーザーの設定
✗ DHCP 利用が標準のため、ネットワーク設定は無し✗ ネームサーバ、ファイルサーバ等の選択もインストーラ
にはありません
補足
52Sun Microsystems K.K.
1: OpenSolaris のインストール1• 初期画面
53Sun Microsystems K.K.
2: OpenSolaris のインストール2• ディスクの選択
1
2
3
初期状態もしくは「ディスク全体を使用する」を選択する必要に応じてカスタマイズを行う
システム用 HDD が選択されていることを確認
54Sun Microsystems K.K.
3: OpenSolaris のインストール3• タイムゾーン、日付と時刻
1
2
タイムゾーンの選択日付、時刻の確認
55Sun Microsystems K.K.
4: OpenSolaris のインストール4• ロケールの選択
1
2
言語=日本語地域=日本を選択
56Sun Microsystems K.K.
5: OpenSolaris のインストール5• ユーザー
root パスワード
初期ユーザーアカウントOpenSolaris の管理用ユーザとなります。(OpenSolaris では rootログインは禁止されているため )
コンピュータ名 (ホスト名 )必要に応じて変更
57Sun Microsystems K.K.
6: OpenSolaris のインストール6• 設定確認
設定を確認します。OpenSolaris の DHCP利用がデフォルトのため、ネットワーク設定はありません。
58Sun Microsystems K.K.
7: OpenSolaris のインストール7• インストール画面
59Sun Microsystems K.K.
8: OpenSolaris のインストール8• インストール完了
リブート後、1度仮想マシンの電源をOFF にします。( 後述 )
60Sun Microsystems K.K.
9: OpenSolaris のインストール9• リブート完了後に「仮想マシン」→「閉じる」を選択
1
2
61Sun Microsystems K.K.
9: OpenSolaris のインストール9• リブート完了後に「仮想マシン」→「閉じる」を選択
12
62Sun Microsystems K.K.
10: OpenSolaris のインストール10• CD イメージのアンマウント
仮想マシンの設定ウィンドウを開き、「 CD/DVD ドライブのマウント」のチェックを外します。(CD ブートをしてしまうため )
Section 4 : OpenSolaris の起動ZFS 環境の確認
Sun Microsystems K.K.
64Sun Microsystems K.K.
OpenSolaris の起動
65Sun Microsystems K.K.
1: 仮想マシンの起動
仮想マシンが選択されていることを確認し、起動ボタンをクリックする
CD がマウントされていないことを確認
66Sun Microsystems K.K.
2: Grub 画面
1つめはグラフィカルブート2つめはテキストブート
67Sun Microsystems K.K.
3: 起動中の画面
68Sun Microsystems K.K.
4: ログイン画面
インストール時に作成したユーザでログインする標準では root ログインできません
69Sun Microsystems K.K.
5: ログイン後
70Sun Microsystems K.K.
6: フルスクリーンモードの切り替え
71Sun Microsystems K.K.
ZFS情報確認等
72Sun Microsystems K.K.
root アカウントについて
• OpenSolaris では root ユーザアカウントは無効になっています。
• root で作業を行いたい場合は、 RBAC( ロールベースのアクセス制御 ) を利用した root ロールを利用します。> 初期ユーザはあらかじめ root ロールの利用権限が設
定されています。他のユーザに root ロールの利用権限を追加する場合は /etc/user_attr を編集します。
> コマンド実行時、 pfexec コマンドを利用します。ex. # pfexec format
> su, pfexec su を利用して root ユーザに変更することは可能です。
73Sun Microsystems K.K.
1:端末エミュレータの起動
背景部分で右クリックするとメニューが表示されます。
クリックで起動
74Sun Microsystems K.K.
2:端末エミュレータ
75Sun Microsystems K.K.
3: OS情報の確認
user01@opensolaris:~$ uname -aSunOS opensolaris 5.11 snv_101b i86pc i386 i86pc Solaris
user01@opensolaris:~$ cat /etc/release OpenSolaris 2008.11 snv_101b_rc2 X86 Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. Assembled 19 November 2008
• 端末エミュレータ上で、> uname -a> cat /etc/releaseを実行
76Sun Microsystems K.K.
4: rpool の確認1
user01@opensolaris:~$ zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOTrpool 8.94G 3.06G 5.88G 34% ONLINE -
user01@opensolaris:~$ zpool status rpool pool: rpool state: ONLINE scrub: none requestedconfig:
NAME STATE READ WRITE CKSUMrpool ONLINE 0 0 0 c3d0s0 ONLINE 0 0 0
errors: No known data errors
• OpenSolaris は ufs ではなく zfs ブートを利用。
• pool情報の取得には zpool を用いる
77Sun Microsystems K.K.
5: rpool の確認2
user01@opensolaris:~$ zpool get all rpoolNAME PROPERTY VALUE SOURCErpool size 8.94G -rpool used 3.06G -rpool available 5.88G -rpool capacity 34% -rpool altroot - defaultrpool health ONLINE -rpool guid 8331797638731287919 -rpool version 13 defaultrpool bootfs rpool/ROOT/opensolaris localrpool delegation on defaultrpool autoreplace off defaultrpool cachefile - defaultrpool failmode wait defaultrpool listsnapshots off default
• zpool get all <Pool 名 > で詳細情報を確認可能
78Sun Microsystems K.K.
6: rpool の確認3
user01@opensolaris:~$ zpool upgrade -vThis system is currently running ZFS pool version 13.
The following versions are supported:
VER DESCRIPTION--- -------------------------------------------------------- 1 Initial ZFS version 2 Ditto blocks (replicated metadata) 3 Hot spares and double parity RAID-Z 4 zpool history 5 Compression using the gzip algorithm 6 bootfs pool property 7 Separate intent log devices 8 Delegated administration 9 refquota and refreservation properties 10 Cache devices 11 Improved scrub performance 12 Snapshot properties 13 snapused propertyFor more information on a particular version, including supported releases, see:
http://www.opensolaris.org/os/community/zfs/version/N
Where 'N' is the version number.
• zpool upgrade -v で zpool のバージョン確認が可能
ウェブブラウザでこの URL にアクセスすれば詳細情報を入手することができます。
79Sun Microsystems K.K.
7: rpool 上の zfs filesystem の確認
user01@opensolaris:~$ zfs listNAME USED AVAIL REFER MOUNTPOINTrpool 3.50G 5.30G 72K /rpoolrpool/ROOT 2.74G 5.30G 18K legacyrpool/ROOT/opensolaris 2.74G 5.30G 2.68G /rpool/dump 256M 5.30G 256M -rpool/export 2.06M 5.30G 19K /exportrpool/export/home 2.04M 5.30G 19K /export/homerpool/export/home/user01 2.02M 5.30G 2.02M /export/home/user01rpool/swap 512M 5.74G 59.2M -
• zfs list コマンドを利用することにより確認可能
Section 5: ZFS 環境の構築、操作
Sun Microsystems K.K.
81Sun Microsystems K.K.
Pool の作成、確認
82Sun Microsystems K.K.
Zpool, RAID に関して
• Pool の作成には zpool create を利用します。
• 指定できる RAID 構成は> mirror … ミラー> raidz, raidz1 … シングルパリティ> raidz2 … デュアルパリティ
• spare オプションを利用して、スペアディスクの設定も可能
次項ではディスク 7 本を用い、RAID-Z2(4+2) 、 HotSpare x1という構成の作成を行います。作業は端末エミュレータ上で行います。
83Sun Microsystems K.K.
1: ディスクの確認
user01@opensolaris:~$ pfexec formatSearching for disks...done
AVAILABLE DISK SELECTIONS: 0. c3d0 <DEFAULT cyl 1171 alt 2 hd 255 sec 63> /pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0 1. c5t0d0 <DEFAULT cyl 126 alt 2 hd 64 sec 32> /pci@0,0/pci8086,2829@d/disk@0,0 2. c5t1d0 <DEFAULT cyl 126 alt 2 hd 64 sec 32> /pci@0,0/pci8086,2829@d/disk@1,0 3. c5t2d0 <DEFAULT cyl 126 alt 2 hd 64 sec 32> /pci@0,0/pci8086,2829@d/disk@2,0 4. c5t3d0 <DEFAULT cyl 126 alt 2 hd 64 sec 32> /pci@0,0/pci8086,2829@d/disk@3,0 5. c5t4d0 <DEFAULT cyl 126 alt 2 hd 64 sec 32> /pci@0,0/pci8086,2829@d/disk@4,0 6. c5t5d0 <DEFAULT cyl 126 alt 2 hd 64 sec 32> /pci@0,0/pci8086,2829@d/disk@5,0 7. c5t6d0 <DEFAULT cyl 126 alt 2 hd 64 sec 32> /pci@0,0/pci8086,2829@d/disk@6,0Specify disk (enter its number): ^C
• pfexec format コマンドを利用します。
• 確認後 Ctrl-c で終了。
赤 (1-7 番 ) で記述してあるものが zfs 用に用意した仮想ディスクデバイス。0 番は OS 用。
84Sun Microsystems K.K.
2: Pool tank (RAID-Z2) を作成する
user01@opensolaris:~$ pfexec zpool create tank raidz2 c5t0d0 \c5t1d0 c5t2d0 c5t3d0 c5t4d0 c5t5d0 spare c5t6d0 user01@opensolaris:~$ zpool listNAME SIZE USED AVAIL CAP HEALTH ALTROOTrpool 8.94G 3.17G 5.77G 35% ONLINE -tank 688M 225K 688M 0% ONLINE -
• pfexec zpool create コマンドを利用します。> Pool 名は tank に設定
• c5t0d0 – c5t5d0 で RAID Z2 を作成し , c5t6d0 をスペアに割り当てる
• raidz2 の代わりに raidz1, mirror 等を指定すれば、異なる RAID 構成を作成可能
• zpool list で tank プールの追加を確認する
85Sun Microsystems K.K.
3: Pool tank の情報確認 1user01@opensolaris:~$ zpool status tank pool: tank state: ONLINE scrub: none requestedconfig:
NAME STATE READ WRITE CKSUMtank ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c5t0d0 ONLINE 0 0 0 c5t1d0 ONLINE 0 0 0 c5t2d0 ONLINE 0 0 0 c5t3d0 ONLINE 0 0 0 c5t4d0 ONLINE 0 0 0 c5t5d0 ONLINE 0 0 0spares c5t6d0 AVAIL
errors: No known data errors
86Sun Microsystems K.K.
4: Pool tank の情報確認 2user01@opensolaris:~$ zfs listNAME USED AVAIL REFER MOUNTPOINTrpool 3.61G 5.19G 72K /rpoolrpool/ROOT 2.85G 5.19G 18K legacyrpool/ROOT/opensolaris 2.85G 5.19G 2.73G /rpool/dump 256M 5.19G 256M -rpool/export 10.8M 5.19G 19K /exportrpool/export/home 10.7M 5.19G 19K /export/homerpool/export/home/user01 10.7M 5.19G 10.7M /export/home/user01rpool/swap 512M 5.63G 59.2M -tank 126K 426M 36.0K /tank
user01@opensolaris:~$ df -kFilesystem 1K-blocks Used Available Use% Mounted onrpool/ROOT/opensolaris 8291544 2860513 5431032 35% /swap 664408 312 664096 1% /etc/svc/volatile/usr/lib/libc/libc_hwcap3.so.1 8291544 2860513 5431032 35% /lib/libc.so.1swap 664156 60 664096 1% /tmpswap 664140 44 664096 1% /var/runrpool/export 5431051 19 5431032 1% /exportrpool/export/home 5431051 19 5431032 1% /export/homerpool/export/home/user01 5442041 11010 5431032 1% /export/home/user01rpool 5431104 72 5431032 1% /rpooltank 436358 36 436322 1% /tank
• Pool tank が /tank にマウントされていることを確認
87Sun Microsystems K.K.
5: Pool tank の情報確認 3user01@opensolaris:/dev/dsk$ zfs get all tankNAME PROPERTY VALUE SOURCEtank type filesystem -tank creation Mon Mar 16 17:25 2009 -tank used 126K -tank available 426M -tank referenced 36.0K -tank compressratio 1.00x -tank mounted yes -tank quota none defaulttank reservation none default.....
user01@opensolaris:/dev/dsk$ zpool iostat -v capacity operations bandwidthpool used avail read write read write---------- ----- ----- ----- ----- ----- -----rpool 3.17G 5.77G 4 1 236K 21.5K c3d0s0 3.17G 5.77G 4 1 236K 21.5K---------- ----- ----- ----- ----- ----- -----tank 225K 688M 0 0 8 248 raidz2 225K 688M 0 0 8 248 c5t0d0 - - 0 0 7.24K 3.46K c5t1d0 - - 0 0 7.24K 3.46K c5t2d0 - - 0 0 7.24K 3.46K c5t3d0 - - 0 0 7.17K 3.45K c5t4d0 - - 0 0 7.17K 3.46K c5t5d0 - - 0 0 7.24K 3.45K---------- ----- ----- ----- ----- ----- -----
88Sun Microsystems K.K.
Pool の操作
89Sun Microsystems K.K.
1: Pool の export
user01@opensolaris:~$ pfexec zpool export tankuser01@opensolaris:~$ zpool status tankcannot open 'tank': no such pooluser01@opensolaris:~$ pfexec zpool import pool: tank id: 2000374793814637324 state: ONLINEaction: The pool can be imported using its name or numeric identifier.config:
tank ONLINE raidz2 ONLINE c5t0d0 ONLINE c5t1d0 ONLINE c5t2d0 ONLINE c5t3d0 ONLINE c5t4d0 ONLINE c5t5d0 ONLINEspares c5t6d0
• Pool のエクスポート ( アンマウント ) はpfexec zpool export <Pool 名 > を利用
• pfexec zpool import でインポート可能な Pool を一覧表示
同じ名前の Pool が複数ある場合、id を利用して Pool のインポートを行います。
90Sun Microsystems K.K.
2: Pool の import
user01@opensolaris:~$ pfexec zpool import tankuser01@opensolaris:~$ zpool status tank pool: tank state: ONLINE scrub: none requestedconfig:
NAME STATE READ WRITE CKSUMtank ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c5t0d0 ONLINE 0 0 0 c5t1d0 ONLINE 0 0 0 c5t2d0 ONLINE 0 0 0 c5t3d0 ONLINE 0 0 0 c5t4d0 ONLINE 0 0 0 c5t5d0 ONLINE 0 0 0spares c5t6d0 AVAIL
errors: No known data errorsuser01@opensolaris:~$ pfexec zpool importuser01@opensolaris:~$
• pfexec zpool import <pool 名 > でインポート
• pfexec zpool import <ID> でもインポート可能
91Sun Microsystems K.K.
3: Pool からスペアディスクをはずす
user01@opensolaris:~$ pfexec zpool remove tank c5t6d0user01@opensolaris:~$ zpool status tank pool: tank state: ONLINE scrub: none requestedconfig:
NAME STATE READ WRITE CKSUMtank ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c5t0d0 ONLINE 0 0 0 c5t1d0 ONLINE 0 0 0 c5t2d0 ONLINE 0 0 0 c5t3d0 ONLINE 0 0 0 c5t4d0 ONLINE 0 0 0 c5t5d0 ONLINE 0 0 0
errors: No known data errors
• pfexec zpool remove <pool 名 > <disk> を利用
Spare が無いことを確認
92Sun Microsystems K.K.
4: Pool へスペアディスクを追加
user01@opensolaris:~$ pfexec zpool add tank spare c5t6d0user01@opensolaris:~$ zpool status tank pool: tank state: ONLINE scrub: none requestedconfig:
NAME STATE READ WRITE CKSUMtank ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c5t0d0 ONLINE 0 0 0 c5t1d0 ONLINE 0 0 0 c5t2d0 ONLINE 0 0 0 c5t3d0 ONLINE 0 0 0 c5t4d0 ONLINE 0 0 0 c5t5d0 ONLINE 0 0 0spares c5t6d0 AVAIL
errors: No known data errors
• pfexec zpool add <pool 名 > spare <disk> を利用
Spare が追加されたことを確認
93Sun Microsystems K.K.
5: ディスクをオフラインにする
user01@opensolaris:~$ pfexec zpool offline tank c5t0d0
user01@opensolaris:~$ zpool status tank pool: tank state: DEGRADEDstatus: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'. see: http://www.sun.com/msg/ZFS-8000-9P scrub: none requestedconfig:
NAME STATE READ WRITE CKSUMtank DEGRADED 0 0 0 raidz2 DEGRADED 0 0 0 c5t0d0 OFFLINE 0 50 0 c5t1d0 ONLINE 0 0 0 c5t2d0 ONLINE 0 0 0 c5t3d0 ONLINE 0 0 0 c5t4d0 ONLINE 0 0 0 c5t5d0 ONLINE 0 0 0spares c5t6d0 AVAIL
errors: No known data errors
• pfexec zpool offline <pool 名 > <disk> を利用
状態が変わります
94Sun Microsystems K.K.
6: ディスクをオンラインにする
user01@opensolaris:~$ pfexec zpool online tank c5t0d0user01@opensolaris:~$ zpool status tank pool: tank state: ONLINEstatus: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'. see: http://www.sun.com/msg/ZFS-8000-9P scrub: resilver completed after 0h0m with 0 errors on Mon Mar 16 18:06:10 2009config:
NAME STATE READ WRITE CKSUMtank ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c5t0d0 ONLINE 0 47 0 11.5K resilvered c5t1d0 ONLINE 0 0 0 7.50K resilvered c5t2d0 ONLINE 0 0 0 9K resilvered c5t3d0 ONLINE 0 0 0 9K resilvered c5t4d0 ONLINE 0 0 0 8K resilvered c5t5d0 ONLINE 0 0 0 7.50K resilveredspares c5t6d0 AVAIL
errors: No known data errors
• pfexec zpool online <pool 名 > <disk> を利用
状態が変わります
95Sun Microsystems K.K.
7: Poolからディスクと取り外す その1
user01@opensolaris:~$ pfexec zpool detach tank c5t0d0cannot detach c5t0d0: only applicable to mirror and replacing vdevsuser01@opensolaris:~$ pfexec zpool replace tank c5t0d0 c5t6d0user01@opensolaris:~$ zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Mon Mar 16 18:15:02 2009config:
NAME STATE READ WRITE CKSUMtank ONLINE 0 0 0 raidz2 ONLINE 0 0 0 spare ONLINE 0 0 0 c5t0d0 ONLINE 0 0 0 c5t6d0 ONLINE 0 0 0 35K resilvered c5t1d0 ONLINE 0 0 0 20K resilvered c5t2d0 ONLINE 0 0 0 19.5K resilvered c5t3d0 ONLINE 0 0 0 19K resilvered c5t4d0 ONLINE 0 0 0 22.5K resilvered c5t5d0 ONLINE 0 0 0 22K resilveredspares c5t6d0 INUSE currently in use
errors: No known data errors
• pfexec zpool detach <pool 名 > <disk> を利用
• RAID-Z/Z2 はそのままでは取り外せないので、最初にスペアと入れ替えるpfexec zpool replace <pool 名 > <disk> <disk>
状態が変わります
96Sun Microsystems K.K.
8: Poolからディスクと取り外す その2
user01@opensolaris:~$ pfexec zpool detach tank c5t0d0user01@opensolaris:~$ zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Mon Mar 16 18:15:02 2009config:
NAME STATE READ WRITE CKSUMtank ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c5t6d0 ONLINE 0 0 0 35K resilvered c5t1d0 ONLINE 0 0 0 20K resilvered c5t2d0 ONLINE 0 0 0 19.5K resilvered c5t3d0 ONLINE 0 0 0 19K resilvered c5t4d0 ONLINE 0 0 0 22.5K resilvered c5t5d0 ONLINE 0 0 0 22K resilvered
errors: No known data errors
• pfexec zpool detach <pool 名 > <disk> を利用
• 再度ディスクを追加する場合は、 pfexec zpool add でスペアを追加。
• pfexec zpool replace を利用すればディスク配置も元に戻すことが可能。
状態が変わります
97Sun Microsystems K.K.
9: Pool の削除
user01@opensolaris:~$ pfexec zpool destroy tankuser01@opensolaris:~$ zpool status tankcannot open 'tank': no such pool
• pfexec zpool destory <pool 名 > を利用
98Sun Microsystems K.K.
10 : 課題
• 下記の RAID 構成で同様の作業を行う> RAID-Z> Mirror
• スペアを複数用意する> RAID-Z(4+1)+Spare(2) など
• スペアを共有し、 zpool replace 等を行う> Mirror(1+1), RAID-Z(2+1), 共有 Spare(2) など
99Sun Microsystems K.K.
ZFS File System の操作
100Sun Microsystems K.K.
1: Pool tank (RAID-Z2) の再作成
user01@opensolaris:~$ pfexec zpool create tank raidz2 c5t0d0 \c5t1d0 c5t2d0 c5t3d0 c5t4d0 c5t5d0 spare c5t6d0 user01@opensolaris:~$ zpool listNAME SIZE USED AVAIL CAP HEALTH ALTROOTrpool 8.94G 3.17G 5.77G 35% ONLINE -tank 688M 225K 688M 0% ONLINE -
• pfexec zpool create コマンドを利用します。> Pool 名は tank に設定
• c5t0d0 – c5t5d0 で RAID Z2 を作成し , c5t6d0 をスペアに割り当てる
• raidz2 の代わりに raidz1, mirror 等を指定すれば、異なる RAID 構成を作成可能
• zpool list で tank プールの追加を確認する
101Sun Microsystems K.K.
2: ZFS ファイルシステムの作成
user01@opensolaris:~$ pfexec zfs create tank/data1user01@opensolaris:~$ pfexec zfs create tank/data2user01@opensolaris:~$ zfs listNAME USED AVAIL REFER MOUNTPOINTrpool 3.62G 5.18G 72K /rpoolrpool/ROOT 2.86G 5.18G 18K legacyrpool/ROOT/opensolaris 2.86G 5.18G 2.73G /rpool/dump 256M 5.18G 256M -rpool/export 10.8M 5.18G 19K /exportrpool/export/home 10.7M 5.18G 19K /export/homerpool/export/home/user01 10.7M 5.18G 10.7M /export/home/user01rpool/swap 512M 5.62G 59.2M -tank 230K 426M 38.0K /tanktank/data1 36.0K 426M 36.0K /tank/data1tank/data2 36.0K 426M 36.0K /tank/data2
• pfexec zfs create <filesystem 名 > で作成
• 作成時点でマウントされる
102Sun Microsystems K.K.
3: アンマウント
user01@opensolaris:~$ pfexec zfs umount tank/data1user01@opensolaris:~$ df -kFilesystem 1K-blocks Used Available Use% Mounted onrpool/ROOT/opensolaris 8291544 2863903 5427641 35% /swap 720500 316 720184 1% /etc/svc/volatile/usr/lib/libc/libc_hwcap3.so.1 8291544 2863903 5427641 35% /lib/libc.so.1swap 720196 12 720184 1% /tmpswap 720228 44 720184 1% /var/runrpool/export 5427660 19 5427641 1% /exportrpool/export/home 5427660 19 5427641 1% /export/homerpool/export/home/user01 5438644 11004 5427641 1% /export/home/user01rpool 5427713 72 5427641 1% /rpooltank 436256 40 436216 1% /tanktank/data2 436252 36 436216 1% /tank/data2
• pfexec zfs umount を利用する
103Sun Microsystems K.K.
4: マウント
user01@opensolaris:~$ pfexec zfs mount tank/data1user01@opensolaris:~$ df -kFilesystem 1K-blocks Used Available Use% Mounted onrpool/ROOT/opensolaris 8291548 2863903 5427645 35% /swap 720368 316 720052 1% /etc/svc/volatile/usr/lib/libc/libc_hwcap3.so.1 8291548 2863903 5427645 35% /lib/libc.so.1swap 720064 12 720052 1% /tmpswap 720096 44 720052 1% /var/runrpool/export 5427664 19 5427645 1% /exportrpool/export/home 5427664 19 5427645 1% /export/homerpool/export/home/user01 5438649 11004 5427645 1% /export/home/user01rpool 5427717 72 5427645 1% /rpooltank 436256 40 436216 1% /tanktank/data2 436252 36 436216 1% /tank/data2tank/data1 436252 36 436216 1% /tank/data1
• pfexec zfs mount を利用する
• mount コマンドは利用できない
104Sun Microsystems K.K.
5: ファイルシステムの情報
user01@opensolaris:~$ zfs get all tank/data1NAME PROPERTY VALUE SOURCEtank/data1 type filesystem -tank/data1 creation Tue Mar 17 14:46 2009 -tank/data1 used 36.0K -tank/data1 available 426M -tank/data1 referenced 36.0K -tank/data1 compressratio 1.00x -tank/data1 mounted no -tank/data1 quota none defaulttank/data1 reservation none defaulttank/data1 recordsize 128K defaulttank/data1 mountpoint /tank/data1 defaulttank/data1 sharenfs off defaulttank/data1 checksum on defaulttank/data1 compression off defaulttank/data1 atime on default.....
• zfs get <all | プロパティ > を利用
105Sun Microsystems K.K.
6: マウントポイントの変更 1
user01@opensolaris:~$ pfexec zfs set mountpoint=/data1 tank/data1user01@opensolaris:~$ zfs listNAME USED AVAIL REFER MOUNTPOINTrpool 3.62G 5.18G 72K /rpoolrpool/ROOT 2.86G 5.18G 18K legacyrpool/ROOT/opensolaris 2.86G 5.18G 2.73G /rpool/dump 256M 5.18G 256M -rpool/export 10.8M 5.18G 19K /exportrpool/export/home 10.8M 5.18G 19K /export/homerpool/export/home/user01 10.8M 5.18G 10.8M /export/home/user01rpool/swap 512M 5.62G 59.2M -tank 244K 426M 40.0K /tanktank/data1 36.0K 426M 36.0K /data1tank/data2 36.0K 426M 36.0K /tank/data2
• pfexec zfs set mountpoint=< マウント先 > < 名前 > を使用する
• 自動的に再マウントされる
106Sun Microsystems K.K.
7: マウントポイントの変更 2-1
user01@opensolaris:~$ pfexec mount -F zfs tank/data2 /mntfilesystem 'tank/data1' cannot be mounted using 'mount -F zfs'Use 'zfs set mountpoint=/mnt' instead.If you must use 'mount -F zfs' or /etc/vfstab, use 'zfs set mountpoint=legacy'.See zfs(1M) for more information.
user01@opensolaris:~$ pfexec zfs set mountpoint=legacy tank/data2user01@opensolaris:~$ zfs listNAME USED AVAIL REFER MOUNTPOINTrpool 3.62G 5.18G 72K /rpoolrpool/ROOT 2.86G 5.18G 18K legacyrpool/ROOT/opensolaris 2.86G 5.18G 2.73G /rpool/dump 256M 5.18G 256M -rpool/export 10.8M 5.18G 19K /exportrpool/export/home 10.8M 5.18G 19K /export/homerpool/export/home/user01 10.8M 5.18G 10.8M /export/home/user01rpool/swap 512M 5.62G 59.2M -tank 256K 426M 40.0K /tanktank/data1 36.0K 426M 36.0K /data1tank/data2 36.0K 426M 36.0K legacy
• mount コマンド等、旧来の方法を利用したい場合はマウントポイントを legacy に設定する
• マウント時は mount -F zfs を利用する
107Sun Microsystems K.K.
8: マウントポイントの変更 2-2
user01@opensolaris:~$ pfexec zfs mount tank/data2cannot mount 'tank/data2': legacy mountpointuse mount(1M) to mount this filesystem
user01@opensolaris:~$ pfexec mount -F zfs tank/data2 /mnt
user01@opensolaris:~$ df -kFilesystem 1K-blocks Used Available Use% Mounted onrpool/ROOT/opensolaris 8291535 2863904 5427631 35% /swap 718592 316 718276 1% /etc/svc/volatile/usr/lib/libc/libc_hwcap3.so.1 8291535 2863904 5427631 35% /lib/libc.so.1swap 718288 12 718276 1% /tmpswap 718320 44 718276 1% /var/runrpool/export 5427650 19 5427631 1% /exportrpool/export/home 5427650 19 5427631 1% /export/homerpool/export/home/user01 5438648 11017 5427631 1% /export/home/user01rpool 5427703 72 5427631 1% /rpooltank 436232 38 436194 1% /tanktank/data1 436230 36 436194 1% /data1tank/data2 436230 36 436194 1% /mnt
108Sun Microsystems K.K.
9: ファイルシステムの設定変更
user01@opensolaris:~$ pfexec zfs set compression=on tank/data1user01@opensolaris:~$ zfs get compression tank/data1NAME PROPERTY VALUE SOURCEtank/data1 compression on local
user01@opensolaris:~$ pfexec zfs get all tank/data3Cannot open ‘tank/data3’ : dataset does not existuser01@opensolaris:~$ pfexec zfs create -o compression=on tank/data3user01@opensolaris:~$ pfexec zfs get compression tank/data3NAME PROPERTY VALUE SOURCEtank/data3 compression on local
• pfexec zfs set < プロパティ >=<値 > < ファイルシステム > を利用し、各種プロパティの設定が可能
• compression=on とすることでファイルシステムを圧縮モードにすることができる> 圧縮は設定後の書き込みから有効
• pfexec zfs create -o < プロパティ >=<値 > を利用することで、ファイルシステム作成時に設定を反映することも可能
109Sun Microsystems K.K.
10: スナップショットの確認
user01@opensolaris:~$ zfs list -t snapshotNAME USED AVAIL REFER MOUNTPOINTrpool/ROOT/opensolaris@install 121M - 2.65G -
• zfs list -t snapshot で現在のスナップショットが確認可能
• 初期インストール完了時点で OS 領域のスナップショットが作成されている
Solaris 10 10/08 など ZFS のバージョンが古い環境では、 zfs list で確認します。スナップショットとファイルシステムが同時に表示されます。
110Sun Microsystems K.K.
11: スナップショットのテスト / 準備
user01@opensolaris:~$ pfexec cp /etc/* /tank/data1/.cp: omitting directory `/etc/X11'cp: omitting directory `/etc/acct'cp: omitting directory `/etc/amd64'cp: omitting directory `/etc/anthy'cp: omitting directory `/etc/apache'cp: omitting directory `/etc/avahi'.....
user01@opensolaris:~$ ls /tank/data1TIMEZONE hba.conf nodename rpcaliases hostid nscd.conf rtc_configauto_home hosts nsswitch.conf sdp.confauto_master ima.conf nsswitch.dns servicesautopush inetd.conf nsswitch.files setmntbootrc init nsswitch.ldap shadowcfgadm inittab nsswitch.nis shutdownclri install nsswitch.nisplus sock2pathcoreadm.conf.old ioctl.syscon orbitrc sudoers.....
• スナップショットのテストのために、 tank/data1 へファイルをコピーします。
111Sun Microsystems K.K.
12: スナップショットのテスト / 作成
user01@opensolaris:~$ pfexec zfs snapshot tank/data1@snap
user01@opensolaris:~$ zfs list -t snapshotNAME USED AVAIL REFER MOUNTPOINTrpool/ROOT/opensolaris@install 121M - 2.65G -tank/data1@snap 0 - 1.61M -
user01@opensolaris:~$ zfs get all tank/data1@snapNAME PROPERTY VALUE SOURCEtank/data1@snap type snapshot -tank/data1@snap creation Tue Mar 17 15:05 2009 -tank/data1@snap used 0 -tank/data1@snap referenced 1.61M -tank/data1@snap compressratio 1.00x -tank/data1@snap devices on defaulttank/data1@snap exec on defaulttank/data1@snap setuid on default.....
• pfexec zfs snapshot < 名前 > で作成します
• zfs get <all | プロパティ > を利用し、スナップショットの情報を確認することも可能
• スナップショットは読み込み専用
112Sun Microsystems K.K.
13: スナップショットのテスト / 確認
user01@opensolaris:~$ ls /tank/data1/.zfs/snapshot/snapTIMEZONE hba.conf nodename rpcaliases hostid nscd.conf rtc_configauto_home hosts nsswitch.conf sdp.confauto_master ima.conf nsswitch.dns servicesautopush inetd.conf nsswitch.files setmntbootrc init nsswitch.ldap shadowcfgadm inittab nsswitch.nis shutdownclri install nsswitch.nisplus sock2path
• スナップショットデータは /<mountpoint/.zfs/snapshot/< スナップショット名 >以下に保存されている
113Sun Microsystems K.K.
14: スナップショットのテスト /復元
user01@opensolaris:~$ pfexec rm /tank/data1/*
user01@opensolaris:~$ ls /tank/data1
user01@opensolaris:~$er01@opensolaris:~$ zfs list -t snapshotNAME USED AVAIL REFER MOUNTPOINTrpool/ROOT/opensolaris@install 121M - 2.65G -tank/data1@snap 36.0K - 1.61M -
user01@opensolaris:~$ pfexec zfs rollback tank/data1@snap
user01@opensolaris:~$ ls /tank/data1TIMEZONE hba.conf nodename rpcaliases hostid nscd.conf rtc_configauto_home hosts nsswitch.conf sdp.confauto_master ima.conf nsswitch.dns servicesautopush inetd.conf nsswitch.files setmnt.....
• pfexec zfs rollback < スナップショット名 > を使用
114Sun Microsystems K.K.
15: スナップショット、ファイルシステムの削除
user01@opensolaris:~$ pfexec zfs destroy tank/data1@snapuser01@opensolaris:~$ zfs list -t snapshotNAME USED AVAIL REFER MOUNTPOINTrpool/ROOT/opensolaris@install 121M - 2.65G -
user01@opensolaris:~$ pfexec zfs destroy tank/data1 user01@opensolaris:~$ pfexec zfs destroy tank/data2user01@opensolaris:~$ zfs listNAME USED AVAIL REFER MOUNTPOINTrpool 3.57G 5.22G 72K /rpoolrpool/ROOT 2.81G 5.22G 18K legacyrpool/ROOT/opensolaris 2.81G 5.22G 2.69G /rpool/dump 256M 5.22G 256M -rpool/export 11.8M 5.22G 19K /exportrpool/export/home 11.8M 5.22G 19K /export/homerpool/export/home/user01 11.8M 5.22G 11.8M /export/home/user01rpool/swap 512M 5.67G 59.2M -tank 139K 426M 40.0K /tank
• pfexec zfs destory を使用
115Sun Microsystems K.K.
16 : 課題
• ファイルシステムのプロパティの確認および変更を行う> man zfs でマニュアルを読む> quota, canmount, snapdir,readonly など
• スナップショットを機能を試す> 複数のスナップショットを使う> tank/data1@mon, tank/data2@tue, tank/data2@wed, …> zfs destroy -r snapshot など -r オプションを使う
Section 6: rpool のミラー化
Sun Microsystems K.K.
117Sun Microsystems K.K.
rpool について (a.k.a. bootfs)
• rpool は Solaris でシステム領域を zfs とした場合に設定されるデフォルト名> OpenSolaris では標準で利用> Solaris 10 10/08 ではテキストインストーラを利用す
ることで利用可能
• rpool でサポートされるのは mirror および spare のみ> RAID-Z, RAID-Z2 はサポートされません
• MBR(Grub 等で利用する領域 ) は対象外> Grub データの書き込みなど、別途作業が必要
118Sun Microsystems K.K.
rpool のミラー化手順
• ミラー対象のディスクを追加
• fdisk による Solaris パーティションの作成
• パーティション情報の設定(ミラー元と同じ設定に変更する )
• zpool コマンドによる rpool のミラー化
• installgrub コマンドによる Grub のインストール
119Sun Microsystems K.K.
1: ミラー用ディスクの追加Section2 を参照し、ミラー用のディスク(容量はシステム用と同じサイズ)を登録する。ここではOpenSolaris_System_Mirror.vdiとしています。
120Sun Microsystems K.K.
2: rpool の状態を確認
user01@opensolaris:~$ zpool status rpool pool: rpool state: ONLINE scrub: none requestedconfig:
NAME STATE READ WRITE CKSUMrpool ONLINE 0 0 0 c3d0s0 ONLINE 0 0 0
errors: No known data errors
• zpool status rpool で rpool の状態を確認する
121Sun Microsystems K.K.
3: ミラー用ディスクの確認・設定 1
user01@opensolaris:~$ pfexec formatSearching for disks...done
AVAILABLE DISK SELECTIONS: 0. c3d0 <DEFAULT cyl 1171 alt 2 hd 255 sec 63> /pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0 1. c3d1 <DEFAULT cyl 1172 alt 2 hd 255 sec 63> /pci@0,0/pci-ide@1,1/ide@0/cmdk@1,0 2. c5t0d0 <ATA-VBOX HARDDISK-1.0-128.00MB> /pci@0,0/pci8086,2829@d/disk@0,0 3. c5t1d0 <ATA-VBOX HARDDISK-1.0-128.00MB> /pci@0,0/pci8086,2829@d/disk@1,0 4. c5t2d0 <ATA-VBOX HARDDISK-1.0-128.00MB> /pci@0,0/pci8086,2829@d/disk@2,0 5. c5t3d0 <ATA-VBOX HARDDISK-1.0-128.00MB> /pci@0,0/pci8086,2829@d/disk@3,0 6. c5t4d0 <ATA-VBOX HARDDISK-1.0-128.00MB> /pci@0,0/pci8086,2829@d/disk@4,0 7. c5t5d0 <ATA-VBOX HARDDISK-1.0-128.00MB> /pci@0,0/pci8086,2829@d/disk@5,0 8. c5t6d0 <ATA-VBOX HARDDISK-1.0-128.00MB> /pci@0,0/pci8086,2829@d/disk@6,0Specify disk (enter its number): 1
• pfexec format でユーティリティを起動
122Sun Microsystems K.K.
4: ミラー用ディスクの確認・設定 2
Specify disk (enter its number): 1selecting c3d1Controller working list found[disk formatted, defect list found]
No fdisk solaris 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 show - translate a disk address label - write label to the disk
• ディスク番号を選択するとメニューが表示される
Fdisk パーティションが存在しないことがわかります。
123Sun Microsystems K.K.
5: ミラー用ディスクの確認・設定 3
show - translate a disk address 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 volname - set 8-character volume name !<cmd> - execute <cmd>, then return quitformat> fdiskNo 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.yformat>quit
• fdisk を実行すると、すべて Solaris パーティションで良いか聞かれるので、 y とする
• quit で format を終了する
Fdisk パーティションが存在しない場合に表示される。システムがディスクの1部のみを利用している場合は、n とし、手動で作成する
124Sun Microsystems K.K.
補足 1: システムのパーティション• format コマンド実行後、 format> で partition を実行し、
partition> で print を実行することでパーティション内部の情報を確認することができる
format> partition
PARTITION MENU: 0 - change `0' partition ... quitpartition> printCurrent partition table (original):Total disk cylinders available: 1171 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks 0 root wm 1 - 1169 8.95GB (1169/0/0) 18779985 1 unassigned wm 0 0 (0/0/0) 0 2 backup wu 0 - 1170 8.97GB (1171/0/0) 18812115 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 boot wu 0 - 0 7.84MB (1/0/0) 16065 9 unassigned wm 0 0 (0/0/0) 0
partition>
125Sun Microsystems K.K.
format> partition
PARTITION MENU: 0 - change `0' partition ... quitpartition> printCurrent partition table (original):Total disk cylinders available: 1171 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks 0 unassigned wm 0 0 (0/0/0) 0 1 unassigned wm 0 0 (0/0/0) 0 2 backup wu 0 - 1170 8.97GB (1171/0/0) 18812115 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 boot wu 0 - 0 7.84MB (1/0/0) 16065 9 alternates wm 1 - 2 15.69MB (2/0/0) 32130
partition>
補足 2: ミラーのパーティション• 青字の部分がシステムの内容とは異なっている
126Sun Microsystems K.K.
6: パーティション情報の変更• prtvtoc コマンドで元ディスクのパーティション情報を取得
• fmthard でミラー先のパーティション情報を変更する
user01@opensolaris:~$ pfexec prtvtoc /dev/rdsk/c3d0s0 > /tmp/prtvtoc.txtuser01@opensolaris:~$ pfexec fmthard -s /tmp/prtvtoc.txt /dev/rdsk/c3d1s0fmthard: New volume table of contents now in place.
======================================================================変更後、formatコマンドで確認したパーティション情報======================================================================Current partition table (original):Total disk cylinders available: 1171 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks 0 root wm 1 - 1169 8.95GB (1169/0/0) 18779985 1 unassigned wu 0 0 (0/0/0) 0 2 backup wu 0 - 1170 8.97GB (1171/0/0) 18812115 3 unassigned wu 0 0 (0/0/0) 0 4 unassigned wu 0 0 (0/0/0) 0 5 unassigned wu 0 0 (0/0/0) 0 6 unassigned wu 0 0 (0/0/0) 0 7 unassigned wu 0 0 (0/0/0) 0 8 boot wu 0 - 0 7.84MB (1/0/0) 16065 9 unassigned wu 0 0 (0/0/0) 0
127Sun Microsystems K.K.
7: rpool のミラー化• pfexec zpool attatch -f rpool <元ディスク > <ミラー先 >
でミラー化
• コマンド実行後、ディスクのシンクが行われるuser01@opensolaris:~$ pfexec zpool attach rpool c3d0s0 c3d1s0invalid vdev specificationuse '-f' to override the following errors:/dev/dsk/c3d1s0 overlaps with /dev/dsk/c3d1s2user01@opensolaris:~$ pfexec zpool attach -f rpool c3d0s0 c3d1s0Please be sure to invoke installgrub(1M) to make 'c3d1s0' bootable.user01@opensolaris:~$ zpool status rpool pool: rpool state: ONLINEstatus: 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. scrub: resilver in progress for 0h1m, 10.34% done, 0h14m to goconfig:
NAME STATE READ WRITE CKSUMrpool ONLINE 0 0 0 mirror ONLINE 0 0 0 c3d0s0 ONLINE 0 0 0 2.85M resilvered c3d1s0 ONLINE 0 0 0 333M resilvered
errors: No known data errors
128Sun Microsystems K.K.
8: ミラー用ディスクへの Grub のインストール
• installgrub <stage1> <stage2> <device>
user01@opensolaris:~$ pfexec installgrub /boot/grub/stage1 /boot/grub/stage2 \/dev/rdsk/c3d1s0stage1 written to partition 0 sector 0 (abs 16065)stage2 written to partition 0, 267 sectors starting at 50 (abs 16115)
Installgrub を実行しなかった場合の結果を見たい場合はこの項目は飛ばします。テスト後、システム用ディスクで起動し、grub をインストールすれば、ミラーディスクからのブートが行えます。
129Sun Microsystems K.K.
9: ミラー用ディスクからのブート
システムディスクOpenSolaris_System.vdiを取り除いた状態
130Sun Microsystems K.K.
10: Grub をインストールしなかった場合
131Sun Microsystems K.K.
11: Grub をインストール済の場合
132Sun Microsystems K.K.
12: ミラーディスクのみで起動した場合• zpool status で確認する
user01@opensolaris:~$ zpool status rpool pool: rpool state: DEGRADEDstatus: One or more devices could not be opened. Sufficient replicas exist for
the pool to continue functioning in a degraded state.action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scrub: none requestedconfig:
NAME STATE READ WRITE CKSUMrpool DEGRADED 0 0 0 mirror DEGRADED 0 0 0 c3d0s0 UNAVAIL 12 2.88K 0 cannot open c3d1s0 ONLINE 0 0 0
errors: No known data errors
133Sun Microsystems K.K.
13: システムディスクを元に戻した場合
user01@opensolaris:~$ zpool status rpool pool: rpool state: ONLINEstatus: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'. see: http://www.sun.com/msg/ZFS-8000-9P scrub: none requestedconfig:
NAME STATE READ WRITE CKSUMrpool ONLINE 0 0 0 mirror ONLINE 0 0 0 c3d0s0 ONLINE 0 0 4 c3d1s0 ONLINE 0 0 0
errors: No known data errors
134Sun Microsystems K.K.
14 : 課題
• rpool のミラーを拡張する> 3重ミラーの作成> スペアディスクの追加
• LiveCD で起動し、 rpoolおよび作成したpool をマウントし、操作する> pfexec zpool import -f> rpool の / ディレクトリにファイルを作成してみる
> rpool の / ディレクトリをマウントする場合、マウントポイントを変更する必要がある
> pfexec zfs set mountpoint>リブート前に元に戻すのを忘れない
補足情報
Sun Microsystems K.K.
136Sun Microsystems K.K.
ZFS Pool Version ヒストリー
Solaris 10 6/06Version 1First Version
Solaris 10 11/06Version 3RAID-Z2,HotSpare
Solaris 10 8/07Version 4
Solaris 10 10/08Version 10
OpenSolaris 2008.11Unified Storage System Release ver.Version 13
OpenSolaris 2009.06Version 14 or later
OpenSolaris 2008.05Version 8
137Sun Microsystems K.K.
ZFS Pool バージョン詳細情報 • ZFS Pool version 1
> Initial version> RAID-Z(RAID5相当 )> bootfs 非サポート
• ZFS Pool Version 3> RAID-Z2 (RAID6 相当 )> HotSpare
• ZFS Pool Version 4> Zpool history
• ZFS Pool Version 5> Gzip compression
• ZFS Pool Version 6> bootfs (ZFS ブート (rpool)のサポート )
• ZFS Pool version 7> ZFS Intent log (NVRAM)
• ZFS Pool Version 9> Quota改良> CIFS サーバサポート
• ZFS Pool Version 10> キャッシュ Pool のサ
ポート> Solaris 10 10/08のZFS は非サポート
• ZFS Pool Version 11> パフォーマンス改善
• ZFS Pool Version 12,13> Snapshot などのプロ
パティサポート