Oracle Solaris 11 System Administrator (1Z0-820)サンプル問題
リモートからのログ・メッセージをsyslogdデーモンが受け入れていないことがわかりました。リモート・ログをsyslogdデーモンに受け取らせることできる方法を1つ選択してください。
1.
syslogdに-tオプションをつけて実行されるように起動のスクリプトを修正する。
2.
system-logサービスのconfig/log_from_remoteプロパティにtrueを設定して、再構成・再起動する。
3.
/etc/syslog.confファイルにLOG_FROM_REMOTE=YESというエントリを追加して、system-logサービスを再起動する。
4.
svcadmコマンドに-rオプションをつけてsystem-logサービスを有効にする。
正解:2
解説:
1.
起動スクリプトの修正は推奨されませんが、リモート・ログを有効にするのであれば-Tオプションを指定します。
2.
正解です。
3.
/etc/syslog.confではなく/etc/default/syslogdファイルにLOG_FROM_REMOTE=YESのエントリを追加して再起動します。
4.
svcadmコマンドの-rオプションは、指定したサービスが依存しているサービスも同時に有効にするもので、リモート・ログとは関係ありません。
Oracle
Solaris 11 への移行
1.
Solaris Volume Manager (SVM)メタデバイスからの起動
2.
JumpStartインストール
3.
patchaddコマンド
4.
Service Management Facility (SMF)
5.
Fault Management Architecture (FMA)
6.
Solaris 8/9 Container (Legacy Container)とlxブランドゾーン
7.
rootログイン
正解:4, 5, 7
解説:
1.
Solaris11からはZFSブートのみでSVMメタデバイスからの起動はサポートされていません。UFSファイルシステムからの起動もサポートされていません。
2.
Solaris10まで使用されていたJumpStartインストールはSolaris11からは自動インストール(AI)に変更されました。
3.
パッケージ管理方法がIPS(Image Packaging System)に変更されたことにより、patchaddコマンドは廃止されました。ただし、SVR4パッケージはpkgaddコマンド等で継続して利用することは可能です。
4.
正解です。Solaris10から導入されたSMFはSolaris11でも強化され利用されています。
5.
正解です。Solaris10から導入されたFMAはSolaris11でも強化され利用されています。
6.
Solaris10のSPARC環境でサポートされていたLegacy
ContainerはSolaris11ではサポートされていません。Solaris11ではSPARC/x86環境ともにSolaris10を動作させるsolaris10ブランドゾーンをサポートしています。
7.
正解です。Solaris11ではデフォルト設定でrootは役割(ロール)扱いになっているため直接ログインは禁止されますが、rolemod -K type=normal rootで通常のアカウントに戻すことが可能です。
1.
Ultra 45 workstation
2.
32ビットSPARC/x86ハードウェア全般
3.
SPARC Enterprise Mシリーズサーバー全般
4.
Sun Netraシリーズサーバー全般
5.
Sun Fireシリーズサーバー全般
正解:1, 2
解説:
Solaris11では64ビットCPUのみのサポートになります。また、SPARCシステムであってもTシリーズサーバー、Mシリーズサーバーのみのサポートとなります。Sun NetraシリーズやSun FireシリーズにもTシリーズサーバーが含まれますので正解は1と2のみになります。
Oracle
Solaris 11 オペレーティング・システムのインストール
Oracle
Solaris 11で用意されている様々なインストーラについて正しい説明を3つ選択してください。
1.
LiveメディアによるインストールはSPARCシステムのみサポートされている
2.
Liveメディアによるインストールではネットワークの構成の自動/手動を選択できる
3.
Liveメディアによるインストールではインストールするソフトウェアパッケージは選べないがデスクトップベースのパッケージ(ブラウザや各種デスクトップツール)は標準でインストールされる
4.
Liveメディアによるインストールでは管理ユーザーの作成が必須でインストール直後はrootで直接ログインすることはできない
5.
テキストインストーラと自動インストーラ(AI)はx86とSPARC用で分けられておらず、共通のメディアを使用できる
6.
テキストインストーラと自動インストーラ(AI)ではrootを役割にせずにインストールすることができる
正解:3,4,6
解説:
1.
LiveメディアによるインストールはSPARCシステムのみサポートされている
2.
Liveメディアによるインストールではネットワークの構成の自動/手動を選択できる
3.
Liveメディアによるインストールではインストールするソフトウェアパッケージは選べないがデスクトップベースのパッケージ(ブラウザや各種デスクトップツール)は標準でインストールされる
4.
Liveメディアによるインストールでは管理ユーザーの作成が必須でインストール直後はrootで直接ログインすることはできない
5.
テキストインストーラと自動インストーラ(AI)はx86とSPARC用で分けられておらず、共通のメディアを使用できる
6.
テキストインストーラと自動インストーラ(AI)ではrootを役割にせずにインストールすることができる
自動インストーラ(AI)についての正しい説明を3つ選択してください。
1.
AIサーバーとなるシステムにinstall/installadmパッケージをインストールする必要がある
2.
AIサーバーではpkg/serverサービスを稼働させる必要がある
3.
AIによるインストールではDHCPサーバーが必要になる
4.
AIクライアントとAIサーバーのアーキテクチャ(SPARC, x86)は揃える必要がある
5.
様々なバージョンのSolaris11をインストールする際に、クライアントのアーキテクチャ(SPARC,
x86)ごと、インストールしたいOSのバージョンごとにインストールサービスを用意する必要はない
6.
インストールするOSのバージョンはシステム構成(SC)プロファイルで指定できる
7.
クライアントのAIインストール時に非大域ゾーンのインストールや構成も自動化できる
正解:1,3,7
解説:
1.
正解です。通常のインストールのデフォルトではinstalladmコマンドやinstall/serverサービスは存在しません。
2.
pkg/serverはIPSリポジトリサーバーに必要なサービスです。AIサーバーと同一マシンをIPSリポジトリにすることは可能ですが、AIサーバーに必須ではありません。AIサーバーではinstall/serverサービスを稼働させる必要があります。install/serverサービスは指定されたインストールサービスとインストールイメージの関連付けを行います。AIクライアントにインストールイメージを紐づけるためにサービス名を使用します。1つのサーバーにinstall/serverサービス・インスタンスを複数持たせ、それぞれ別の起動イメージに関連付けることもできます。
3.
正解です。installadmコマンドによりAIサーバーの構成と同時にDHCPサーバーとして構成することができます。そうしない場合は外部のDHCPサーバーを利用する必要があります。
4.
クライアントとサーバーのアーキテクチャを揃える必要はありません。AIサーバーはSPARC/x86システムのどちらにでも構成でき、クライアントのアーキテクチャに応じたサービスをそれぞれ作成しておけば、SPARC/x86のクライアントシステムにAIインストールが可能です。
5.
少なくともクライアントのアーキテクチャ(SPARC用、x86用)でインストールサービスを分ける必要があります。また、起動可能なOSのバージョンが異なるサーバーが混在している場合は、OSのバージョンごとにAIイメージを用意してインストールサービスを構成しておく必要があります。
6.
OSのバージョンはAIマニフェストで指定します。「AIマニフェスト」では、OSのバージョン、インストール対象のパッケージ、IPSリポジトリ(デフォルトのリポジトリ:http://pkg.oracle.com/solaris/release)、ディスク構成などを指定することができます。「SCプロファイル」では、rootパスワード、ネットワーク構成、タイムゾーン、キーボード、ネームサービスなどを指定することができます。「条件ファイル」はMACアドレスなどでクライアントを識別するために使用されます。
7.
正解です。installadm list -m -p -n sparc_s11_1111の結果でzonenameの条件などで判断できます。
AIマニフェストやシステム構成プロファイル(SCプロファイル)、条件ファイルについての正しい説明を3つ選択してください。
1.
クライアントが指定した条件に一致しなかったり、指定がない場合、デフォルトのマニフェストが使用される。ただし、デフォルトのマニフェストはシステムで決められてdefault.xmlから変更することはできない。
2.
1つのクライアントに対して指定できるAIマニフェストは1つで、複数設定することはできない。ただし、SCプロファイルは複数設定することができる。
3.
AIマニフェスト内のconfigurationタグでzonecfg構成ファイル(export形式)を指定することで、ゾーン構成を含むクライアントをインストールすることができる。
4.
SCプロファイルを指定しなければインストール直後の最初のブート時にsysconfigが対話的に起動する
5.
SCプロファイルはinstalladm create-profileコマンドで作成する
6.
AIの条件ファイルはJumpStartインストールのrulesファイルに相当し、AIのSCプロファイルはJumpStartインストールのbeginやprofileファイル(classファイル)に相当する
7.
js2aiコマンドはJumpStart用のrulesやprofileファイルをもとにAIマニフェストやSCプロファイルを作成するための変換ツールで、JumpStart用の設定ファイルの全てのエントリをAIマニフェストやSCプロファイル、条件ファイルなどに変換できる。
正解:2, 3, 4
解説:
1.
サービスごとにデフォルトのAIマニフェストは決まっており、特に変更をしなければdefault.xmlというファイルが使用されます。ただし、installadm create-manifestサブコマンドの-dオプションで任意のAIマニフェストをデフォルトとして指定することが可能です。なお、不正なカスタム・マニフェストを指定した場合はデフォルトのマニフェストが使用されることはなくエラーになります。
2.
正解です。1つのAIマニフェストを複数のクライアントで使いまわすことは可能です。SCプロファイルは1つで指定することが一般的ですが、構成を分割して複数指定することも可能です。
3.
正解です。作成するゾーンに対するAIマニフェストやSCプロファイルも別途必要になります。
4.
正解です。SCプロファイルで設定できることを最初の起動時に対話的に設定することになります。
5.
sysconfig create-profileで作成することができます。installadm create-profileは作成済みのSCプロファイルを条件(-c)や条件ファイル(-C)を指定してクライアントに紐づけるコマンドです。
6.
AIの条件ファイルはJumpStartのrulesファイルに相当しますが、SCプロファイルはJumpStartのfinishスクリプトやsysidcfgファイルに相当します。JumpStartのbeginやprofileファイルに相当するのはAIマニフェストです。ちなみにJumpStartのsetup_install_serverスクリプトに相当するのが、installadm
create-serviceコマンドです。
7.
js2aiコマンドはJumpStart用の構成ファイルをAI用に変換するツールですが、全ての構成を変換できるわけではありません。js2aiでサポートされていないキーワードはsysidcfgファイルの場合、name_serviceのNIS+、network_interfaceのPRIMARYなどで、rulesファイルの場合、disksize、hostnameなどが挙げられます。(詳細はjs2aiのマニュアルを参照してください)
1.
スクリプトを使用してカスタムISOイメージを作成することができる
2.
IPSサーバーへのアクセスは必須ではない
3.
ローカルIPSサーバーの利用はできず、オラクル社が提供している公開IPSリポジトリやサポートIPSリポジトリを使用する
4.
distribution-constructorパッケージをインストールする必要がある
5.
distro_constコマンドを実行するホストのアーキテクチャとは関係なく、SPARC/x86のどちらのISOイメージでも作成できる
6.
チェックポイントでイメージの作成処理を一時停止および再開できる。一時停止中にイメージの状態を確認したり、バグの有無を確認できる。
正解:1,4,6
解説:
1.
正解です。
2.
IPSサーバーへのアクセスは必須です。
3.
ローカルに作成したIPSサーバーの利用も可能です。
4.
正解です。
5.
distro_constコマンドを実行するホストと同じアーキテクチャ(x86/SPARC)用のISOイメージしか作成できません。
6.
正解です。
Oracle
Solaris 11 におけるソフトウェア・パッケージの管理
Image
Packaging System (IPS)についての正しい説明を3つ選択してください。
1.
IPSリポジトリとはソフトウェアパッケージの集まりでリポジトリ内のすべてのパッケージはカタログに含まれる。
2.
IPSリポジトリは各組織でローカルネットワーク内に作成する必要がある。
3.
IPSイメージとはパッケージをインストールできる場所(ディレクトリツリー)のことで、完全なシステムを提供できるフルイメージ、フルイメージ(親イメージ)にリンクされる部分イメージなどがある。また、必要に応じて様々な場所にマウントすることができる。
4.
OSの更新はパッチという形式でリポジトリに公開される。
5.
デフォルトではリブートを必要とするパッケージ操作の場合は、新しいブート環境(BE)が作成され、次のブート時にアクティブになるように設定される。
6.
IPSリポジトリには起点(origin)とミラーという概念があり、物理的なレイアウトを最適化することによりパッケージ操作を高速化することができ、起点となるサーバーの障害に対して冗長性を提供することができる。
7.
クライアントからのIPSリポジトリへのアクセス手段はHTTPもしくはHTTPSのみがサポートされている。
正解: 1,3,5
解説:
1.
その通りです。
2.
デフォルトのIPSリポジトリはsolarisパブリッシャー(発行元)としてhttp://pkg.oracle.com/solaris/release/に設定されており、インターネットにアクセスできる環境であればローカルに作成する必要はありません。
3.
その通りです。
4.
Solaris11ではパッチという概念はなくなり、すべての更新はパッケージとしてリポジトリに公開されています。
5.
その通りです。この動きはpkg propertyの出力のbe-policyの値で確認することが可能です。defaultとなっている場合はcreate-backupと同じになります。always-newはもっとも厳格ですべてのパッケージ操作で新しいBEを作成します。また、pkg install --be-name newBE
pkg_name でbe-policyにかかわらず新しいBEを作成して、そのBEにパッケージをインストールすることもできます。詳しくはpkgコマンドのマニュアルを参考にしてください。
6.
ミラーによりパッケージ操作の高速化は提供されますが、メタデータの取得には起点が必要になりますので、障害に対する冗長性は提供されません。起点は、パッケージのメタデータ (カタログ、マニフェスト、検索インデックスなど) とパッケージの内容 (ファイル) の両方を含むパッケージリポジトリのことです。ミラーは、パッケージの内容のみを含むパッケージリポジトリのことです。
7.
IPSサーバー側でローカルリポジトリをNFSでシェアしておけば、クライアント側はpkg set-publisherコマンドで起点をNFSマウントしたディレクトリに設定することもできます。また、リポジトリがローカルファイルシステム内に用意されている場合も同様です。
更新可能なパッケージを表示できるコマンドはどれですか。正しいものを2つ選択してください。
1.
pkg list -u
2.
pkg revert
3.
pkg verify
4.
pkg info -r
5.
pkg set-publisher -g '*'
6.
pkg update -nv '*'
7.
pkg search –u
正解:1,6
解説:
1.
正解です。-uオプションは更新可能なパッケージを表示します。
2.
pkg revert file_nameにより個別ファイルを復元でき、提供時の状態に戻すことができます。また、似たような目的で使用できるpkg fix pkg_name コマンドは、pkg verifyで報告されるエラーをパッケージ単位ですべて修正できます。
3.
pkg verify pkg_name によりインストールされているパッケージを検証し、内容の更新、所有者やパーミッションの変更の有無を確認できます。
4.
pkg info -r pkg_name によりシステムにインストールされていないパッケージ情報を表示することができます。
5.
pkg set-publisher -G '*' -g http://example.com/repo solaris でsolarisパブリッシャの既存のoriginリポジトリを削除して新しいものを追加することができます。-Gオプションで削除するリポジトリ、-gオプションで追加するリポジトリを指定します。
6.
正解です。すべてのパッケージに対してドライラン(-n)で詳細を表示(-v)しながらアップデート操作を検証していますので、更新可能なパッケージが表示されます。
7.
search サブコマンドに-uオプションは無効なので構文エラーです。pkg search stringsはパッケージの検索で使用できます。strings部分にコマンド名やファイル名を指定することで、現在設定されているパブリッシャから対応するパッケージを検索可能です。
ローカル・ホストをIPSパッケージのローカル・リポジトリとして設定します。ローカル・リポジトリの格納場所は/export/IPSにし、既にZFSでファイルシステムが作成されています。また、現在の発行元(パブリッシャ)がデフォルトのhttp://pkg.oracle.com/solaris/release/で、これを新しいhttp://s11-serv1.mydomain.comに変更すると仮定します。発行元の名前はsolarisです。この状況下で実行すべき作業として間違っているものを3つ選択してください。
1.
IPSのフル・リポジトリイメージISOファイルをマウントして、ファイルをrsyncで/export/IPSにコピーする
2.
svccfgコマンドを使用してpkg/serverサービスのpkg/inst_rootプロパティの値を/export/IPS/repoに、pkg/readonlyプロパティの値をfalseに設定する
3.
svcadm refresh pkg/serverでサービスを更新する
4.
svcadm enable pkg/serverでサービスを有効にする
5.
pkg set-publisher -P solarisで発行元の優先順位を変更する
6.
pkg set-publisher -G '*' -g
http://s11-serv1.mydomain.com solaris を実行する
7.
pkg set-publisher -g http://pkg.oracle.com/solaris/releaes -G
http://s11-serv1.mydomain.com solaris を実行する
正解:2,5,7
解説:
1.
分割イメージをダウンロードしてcatコマンドでフル・リポジトリイメージISOを作成します。その他にもpkgrecvコマンドで公開リポジトリからそのままコピーして作成する方法もあります。詳細はpkgrecvのマニュアルを参照してください。
2.
正解です。公開用パッケージデータの準備ができている場合はpkg/readonlyはtrueに設定すべきで、外部からpkgsendコマンドなどで更新できないようにするのが一般的です。運用中に新しいパッケージを送信・公開する場合は逆にpkg/readonlyをfalseに変更します。
3.
変更したプロパティをサービスに反映するために必要な操作です。
4.
ローカル・ホストがIPSリポジトリ・サーバーになるために必要な操作です。
5.
正解です。発行元の場所(URI)の切り替えに発行元同士の優先順位の変更は関係ありません。
6.
-G で削除する起点(Origin)を指定、-g で追加する起点を指定することで発行元の起点を切り替えることができます。-G '*' で指定した発行元のすべての起点を削除できます。
7.
正解です。-g と -Gの使い方が逆です。
以下のコマンド出力の説明のうち正しいものを3つ選択してください。
# beadm
list
BE Active Mountpoint Space Policy Created
-- ------ ---------- ----- ------ -------
solaris !R
- 5.78M static 2013-02-22 01:31
solaris-1 NR /
495.55M static 2013-02-22 01:50
1.
solaris はブート不可能なBEである
2.
solaris BEを削除することができる
3.
solaris BEのスナップショットを作成できる
4.
現在アクティブなBEはsolaris-1 である
5.
solaris BEの名前を変更することができる
6.
solaris-1 BEは再起動後もアクティブになるように設定されている
7.
solaris BEのバックアップは存在しない
正解:1,4,6
解説:
1.
正解です。Active列に”!”が表示されるのは入れ子のBEを表しており、非大域ゾーン内のBEによく見られます。また、"!"がついたBEは-eオプションで新規BEの作成元イメージとして指定することもできません。
2.
"!"がついたブート不可能な入れ子のBEは削除できません。
3.
"!"がついたブート不可能な入れ子のBEのスナップショットの作成はできません。
4.
正解です。Active列に"N"があるためです。
5.
"!"がついたブート不可能な入れ子のBEの名前変更はできません。
6.
正解です。Active列に"NR"があるためです。
7.
beadm list -a を実行しないとBEのバックアップ=スナップショットは表示されないため、これだけでは判断できません。ちなみにバックアップからはそのままブートすることはできず、スナップショットから新しいBEを作成してactivateする必要があります。
パッケージが安全であることを保証するために、新しくインストールするパッケージに有効な署名が少なくとも1つ含まれるように強制する手段として正しいものを2つ選択してください。
1.
イメージプロパティのsignature-policyをrequire-signaturesに設定する
2.
イメージプロパティのbe-policyをalways-signaturesに設定する
3.
発行元(パブリッシャ)プロパティのsignature-policyをrequire-signaturesに設定する
4.
発行元プロパティのsignature-policyをverifyに設定する
5.
イメージプロパティのbe-policyをverify-signaturesに設定する
正解:1,3
解説:
1.
正解です。この設定によってイメージに対して署名を強制できます。
2.
これは不正な値です。be-policyに設定できるのはdefault、always-new、create-backup、when-requiredの4つです。
3.
正解です。この設定をした発行元からのパッケージに対して署名を強制できます。
4.
これはデフォルトの設定です。
5.
Bと同様に不正な値です。
サービスとプロセスの管理
起動時に指定できるSMFマイルストーンのうち正しくないものを2つ選択してください。
1.
none
2.
config
3.
single-user
4.
network
5.
multi-user
6.
multi-user-server
7.
all
正解:2,4
解説:
起動時の指定の方法は boot -m milestone=xxxxxで、xxxxx部分に指定できるのはnone, single-user, multi-user, multi-user-server, allの5つだけです。 また、従来から利用できるboot -s によるシングルユーザーモードでの起動と boot -m milestone=single-user は同じ動作になります。
x86/64システムのGRUBによる起動でもオプションは同じになります。
起動後はsvcadm milestone xxxxxでランレベルを変更することが可能です。
起動時のトラブルシューティング目的でnone → sigle-user →
multi-user → multi-user-server → allと段階的に移行して、各段階でのサービスの起動を確認できます。
sshサービスに絡む依存関係を調べることができるコマンドのうち正しいものを3つ選択してください。
1.
svcs -d ssh
2.
svcs -D svc:/network/ssh:default
3.
svcs -p ssh
4.
svcadm boot-config ssh
5.
svccfg -s ssh setnotify from-online,to-maintenance
mailto:root@localhost
6.
svcs -l ssh
7.
svcprop -p start/exec ssh
正解:1,2,6
解説:
1.
正解です。sshサービスが依存するサービスが表示されます。
2.
正解です。ssh サービスに依存するサービスが表示されます。
3.
ssh サービスから起動するプロセスを表示します。
4.
構文として間違いです。ちなみに、boot-configサービスのfastreboot_default、fastreboot_onpanicプロパティで高速再起動(Fast Reboot)の設定が可能です。デフォルトでは高速再起動はx86で有効、SPARCでは無効に設定されています。高速再起動はGRUBをバイパスして、カーネル内ブートローダーを使用してカーネルをロードすることで再起動処理を高速化します。
5.
これはSMFの通知機能の設定です。これによりsshサービスのステータスがonlineから別に変更された、もしくは別のステータスからmaintenanceに変更された場合、root@localhostにメールで通知が飛ぶようになります。
6.
正解です。出力のdependency部分で依存関係を確認できます。
7.
sshサービスが有効になるときに実行されるプログラムを表示します。
現在のシステムではTimeSliderが有効にされています。ユーザーのホームディレクトリが格納されているrpool/export/homeファイルシステムに対して、毎日1回自動的にスナップショットが取得されるようにするにはどのコマンドを使用すればよいですか。1つ選択してください。
1.
zfs set
com.sun:auto-snapshot=false rpool/export/home
zfs set com.sun:auto-snaphost:daily=true rpool/export/home
2.
svccfg -s auto-snapshot:frequent
setprop zfs/interval=days
svcadm restart auto-snapshot:frequent
3.
svccfg -s
auto-snapshot:daily setprop zfs/period=24
svcadm restart auto-snapshot:daily
4.
svccfg -s time-slider
setprop snapshot/interval=daily
svcadm restart time-slider
正解:1
解説:
1.
正解です。com.sun:auto-snapshotプロパティをfalseに設定して、com.sun:auto-snapshot:dailyプロパティのみをtrueにすることにより毎日の自動スナップショットのみ有効にして、他の頻度の自動スナップショットを停止しています。
2.
auto-snapshot:frequentサービスはデフォルトでzfs/period=15、zfs/interval=minutesに設定され15分ごとに自動スナップショットを取得するようになっているため、zfs/interval=daysに設定することは誤りです。
3.
auto-snapshot:dailyサービスはデフォルトでzfs/period=1、zfs/interval=daysに設定され1日ごとに自動スナップショットを取得するようになっているため、zfs/period=24に設定することは誤りです。
4.
time-sliderサービスにはsnapshot/intervalというプロパティは存在しないので誤りです。
以下のコマンドを実行しました。
priocntl -e -c RT -p 30 -t 20 find / -name test
このコマンドの実行結果の説明のうち正しいものを3つ選択してください。
1.
findコマンドがリアルタイム・クラスで実行される。
2.
findコマンドがタイムシェアリング・クラスで実行される。
3.
findコマンドの優先度(プライオリティ)は30に設定される。
4.
find コマンドの優先度は20に設定される。
5.
findコマンドの優先度は130に設定される。
6.
findコマンドのタイムクオンタムが20ミリ秒に設定される。
正解:1,5,6
解説:
1.
正解です。-c RTの部分で指定しています。
2.
タイムシェアリング・クラスで実行する場合は-c TSにします。
3.
-pは優先度の指定ですが、RTクラスは優先度100が基準のため合計で130となります。
4.
-t 20は優先度の指定ではなく、タイムクオンタムの指定です。
5.
正解です。-p 30の指定とRTクラスの基準の優先度100を合わせて130となります。
6.
正解です。-t 20 の部分で設定しています。
Oracle
Solaris 11のストレージの設定と管理
Oracle
Solaris 11のみで使用できるZFSの新機能を3つ選択してください。
1.
ミラー化されたZFSストレージプールの分割
2.
暗号化機能
3.
重複排除機能
4.
シャドウ・マイグレーション機能
5.
ルートファイルシステムのZFS対応(ZFSブート)
6.
スナップショットの相違点の判別(zfs diff)
正解:2,3,4
解説:
1.
ミラー化されたZFSストレージプールの分割はSolaris10 9/10(Update 9)からサポートしています。(zpool split pool newpool)
2.
正解です。encryptionプロパティで設定します。
3.
正解です。dedupプロパティで設定します。
4.
正解です。shadowプロパティで設定します。
5.
ZFSブートはSolaris 10
10/08(Update 6)からサポートしています。
6.
zfs diff は Solaris 10 8/11(Update 10)からサポートしています。
シャドウ・マイグレーション機能に関する説明のうち間違っているものを3つ選択してください。
1.
shadow-migrationパッケージをデータ移行先と移行元のシステムにインストールしてどちらもshadowdサービスを有効にする。
2.
データの移行が完了していなくても、ユーザーはシャドウ・マイグレーション中のファイルシステムにアクセスすることができる。
3.
データ移行前にソース側(移行元)のファイルシステムを読み取り専用にする。
4.
データ移行中に移行先のシステムを再起動すると移行処理が失敗する。
5.
NFSマウント可能なZFSに対してのみサポートされている。
6.
データ移行の進捗は移行先でshadowstatコマンドを実行することで確認できる。
7.
shadowdサービスのshadow_threadsプロパティを変更して、移行作業のパフォーマンスを調整できる。
正解:1,4,5
解説:
1.
間違っています。ソース側(移行元)には特別なパッケージは不要です。ターゲット側(移行先)ではshadowdサービスを有効にします。
2.
その通りです。存在しないデータに対するアクセスがあった場合、優先的に移行処理をすることで、多少の転送待ち時間は発生しますがエラーになりません。
3.
その通りです。
4.
間違っています。データの移行中にシステムを再起動しても、再起動後に移行処理が継続します。
5.
間違っています。UFSファイルシステムもサポートしています。リモート・マシンからの移行の場合はNFSを使用します。
6.
その通りです。
7.
その通りです。
あるコマンドの出力が以下のようにあります。ここから読み取れる情報として間違っているものを2つ選択してください。なお、使用しているディスク(c3tXd0)はすべて8GBの容量だと仮定します。
pool: testpool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
testpool ONLINE
0 0 0
mirror-0 ONLINE 0
0 0
c3t2d0 ONLINE 0
0 0
c3t3d0 ONLINE 0
0 0
mirror-1 ONLINE 0
0 0
c3t4d0 ONLINE 0
0 0
c3t5d0 ONLINE 0
0 0
errors: No known data errors
1.
testpoolの容量は32GBになる
2.
c3t2d0 はEFIのディスクラベルを持つ
3.
testpoolは4つのディスクからなる2-wayミラー構成である
4.
最上位の仮想デバイスの冗長性が異なっているので、testpoolは推奨された構成ではない
5.
testpoolは2つのディスク(c3t2d0, c3t3d0)からなる2-wayミラー構成から拡張して作成することができる
6.
testpoolは2つのディスク(c3t2s0, c3t4d0)からなる非冗長構成のプールから拡張して作成することができる
7.
未使用のディスクc3t6d0があると仮定すると、zpool replaceコマンドを使用してONLINEの状態のまま使用中のc3t5d0のディスクをc3t6d0に置き換えることができる。
正解:1,4
解説:
1.
間違っています。2-wayミラー構成なので容量は半分の16GBになります。
2.
ディスクを丸ごとZFSの管理下に置いているのでEFIディスクラベルになります。
3.
各ミラー仮想デバイス(mirror-0, mirror-1)の構成要素となるディスクが2つなので2-wayになります。
4.
間違っています。最上位仮想デバイスは mirror-0 と mirror-1であり、それぞれ2-wayなので冗長性は同じです。
5.
zpool add testpool
mirror c3t4d0 c3t5d0 で拡張することが可能です。
6.
zpool attach testpool
c3t2d0 c3t3d0; zpool
attach testpool c3t4d0 c3t5d0 で拡張することが可能です。
7.
この操作は可能です。
oracleプールにある以下のようなファイルシステムをまとめてbackupプールにバックアップしたいと考えています。
NAME USED AVAIL
REFER MOUNTPOINT
oracle 120M 856M
35K /oracle
oracle/archive 31K 856M
31K /oracle/archive
oracle/datafile 100M 856M
100M /oracle/datafile
oracle/redolog 20.0M 856M
20.0M /oracle/redolog
使用できるコマンドを2つ選択してください。
1.
zfs snapshot -r oracle@test
2.
zfs rollback -r oracle@test
3.
zfs clone oracle@test backup/oracle
4.
zfs send -i oracle@test | zfs receive -Fd backup
5.
zfs send -r oracle | zfs receive -d backup
6.
zfs send -r oracle@test | zfs recv -Fd backup
正解:1,6
解説:
1.
正解です。このコマンドでは、oracleファイルシステムと子ファイルシステムのスナップショットをまとめて作成しています。
2.
このコマンドでは、oracle@testスナップショットにロールバックしています。
3.
このコマンドでは、異なるプールにクローンを作成しようとしているのでエラーになります。そもそもクローンはバックアップにはならず、容量を最小限に抑えたファイルシステムのコピーのような扱いになります。
4.
このコマンドでは、エラーになります。send -i オプションはスナップショットの差分を送信するときに使用しますので、スナップショットを2つ指定する必要があります。
5.
このコマンドでは、エラーになります。sendで送信できるのはスナップショットだけです。
6.
正解です。このコマンドでは、再帰的スナップショットを送信して、backupプールで受信しています。-dオプションで送信側の名前を使用してスナップショットを作成し、-Fオプションで既存のbackupファイルシステムで受信できるようにしています。
以下のZFSの機能に関する説明のうち正しいものを2つ選択してください。
1.
zfs diff によりスナップショットと子孫データセットとの差異の概要情報を取得可能である。差異の情報は、ファイルやディレクトリなどの追加・削除・更新のみで名前変更は判別できない。また子孫データセットはスナップショットと現在のデータセットのどちらも指定できる。
2.
ZFSファイルシステムのdedupプロパティをonにすることにより、対象となるファイルシステムに重複データが含まれている場合は直ちにファイルシステムの使用容量が削減される。
3.
以下の設定は矛盾しているためエラーになる。
# zfs set quota=800M testpool/data
# zfs set reservation=1G testpool/data
4.
quotaプロパティによる割り当て制限は、対象となるデータセットとその子孫も含めて容量を制限するが、reservationプロパティによる予約は対象となるデータセット用の容量の予約となり、子孫で使用される容量は含まれない。
5.
以下のように親ファイルシステム(testpool/db)をマウントせずに、子孫のファイルシステム(testpool/db/oracle)をマウントしても/db/oracleディレクトリにアクセスすることはできる。
# zfs list -r testpool
NAME USED AVAIL
REFER MOUNTPOINT
testpool 186K 976M
31K /testpool
testpool/db 62K 976M
31K none
testpool/db/oracle 31K 976M
31K /db/oracle
正解:3,5
解説:
1.
名前変更も判別できます。(+:追加、-:削除、M:変更、R:名前変更)
2.
dedupプロパティを設定しても既存データの重複排除は行われません。dedupプロパティはファイルシステムごとに設定しますが重複排除はプールレベルで行われるため、重複排除率はzpoolコマンドで確認します。
3.
正解です。割り当て制限(quota)を超える予約(reservation)は設定できません。ただし、プールサイズを超える割り当て制限は設定可能です。
4.
reservationプロパティによる予約も子孫も含めて計算されます。子孫を含めない場合はrefreservationプロパティを使用します。同様に子孫を含めない割当て制限としてrefquotaプロパティも存在します。
5.
正解です。
mountpointプロパティをnoneに設定しています。マウントポイントのディレクトリを子孫ファイルシステムに継承しつつ、同様に親ファイルシステムをマウントしたくない場合は、mountpointプロパティをnoneにするのではなくcanmountプロパティをoffにします。
ZFSの暗号化機能に関する説明のうち間違っているものを2つ選択してください。
1.
以下のようなコマンドでファイルシステムレベルで暗号化機能を有効にできる。
# zfs create testpool/enc
# zfs set encryption=on testpool/enc
2.
zpoolのバージョン30以上でサポートされている。
3.
以下のようなコマンドでプールレベルで暗号化機能を有効にできる。
# zpool create -O encryption=on testpool c1t3d0
4.
旧バージョンのSolarisで作成したZFSファイルシステムを暗号化するには、zpoolをアップグレードし、そのzpoolに新しい暗号化ZFSファイルシステムを作成して、既存のデータを移動もしくコピーする必要がある。
5.
ZFSの暗号化機能を使用するためには暗号化用の追加のパッケージをインストールする必要がある。
6.
以下のように鍵ファイルを使用することで、マウント時にパスフレーズを必要としない暗号化ファイルシステムを作成することができる。
# pktool genkey keystore=file outkey=/testkey keytype=aes keylen=256
# zfs create -o encryption=aes-256-gcm
-o keysource=raw,file:///testkey testpool/data
正解:1,5
解説:
1.
間違っています。ZFSの暗号化は作成時にのみサポートされています。既に作成されているファイルシステムにzfs
setコマンドでencryptionプロパティを設定することはできません。
2.
その通りです。zpoolのバージョンはzpool upgrade -v で確認可能です。
3.
その通りです。プールレベルで暗号化する場合も、作成時にencryptionプロパティを設定することで可能です。
4.
その通りです。zpoolが暗号化に対応するバージョンにアップグレードしても、既存のファイルシステムを後から暗号化することはできません。
5.
間違っています。ZFSの暗号化はZFSコマンドセットに組み込まれているため、追加のパッケージは不要です。
6.
その通りです。ちなみにpktoolコマンドは一般ユーザーでも使用可能です。
COMSTAR(Common
Multiprotocol SCSI Target)フレームワークに関連する以下の説明のうち正しいものを2つ選択してください。
1.
Solaris 11ホストをSCSIターゲットデバイスに設定することが可能である
2.
stmfサービスやstmfadmコマンドはscsi-target-mode-frameworkパッケージにより提供され、このパッケージはsolaris-large-serverパッケージグループに含まれている。
3.
iSCSIターゲットの管理にはitadmコマンド、iSCSIイニシエータの管理にはiscsiadmコマンドを使用する。
4.
iSCSIを使用することでネットワークを介してリモートの論理ユニットをローカルのディスクデバイスとしてマウントして利用できるが、1つのIPポートに対して1つのiSCSIターゲットデバイスしか対応しない。
正解:1,3
解説:
1.
正解です。ファイバ・チャネル(FC)やiSCSI、SRP(IB)など様々な接続形態に対応しています。
2.
このパッケージはstorage-serverパッケージグループに含まれています。
3.
正解です。ターゲットデバイスとなる論理ユニット(LU)の管理はstmfadmで行い、iSCSIターゲットノードの管理はitadmで行います。Solaris10ではiSCSIターゲットノードの管理にはiscsitadmコマンドを使用していました(iscsiadmコマンドと似ているの注意)。
4.
1つのIPポートに対して複数のiSCSIターゲットデバイスを紐づけることが可能です。ちなみにSolaris 11 11/11(初期版)ではiSCSIターゲットをダンプデバイスにすることはできません。(Solaris11.1以降は可能です)
Oracle
Solaris 11のゾーンの管理
Solaris11のゾーン機能についての説明のうち正しいものを3つ選んでください。
1.
solaris10ブランド・ゾーンを使用することで、既存のSolaris10システムの大域ゾーンと非大域ゾーンをそれぞれSolaris11システムに移行することが可能である。
2.
Solaris11のゾーンは疎ルートモデルのみサポートされている
3.
solaris10ブランド・ゾーンは、移行元のSolaris10システムの全体フラッシュアーカイブを適用することでインストールすることができる。
4.
非大域ゾーン内でもZFSファイルシステムの管理やストレージプールの作成・修正ができる
5.
Solaris11のゾーンはデフォルトでip-typeがexclusive(排他IP)に設定される。
6.
非大域ゾーンはNFSサーバーになることはできない
7.
非大域ゾーンのzonepathはZFSもしくはUFSファイルシステム上に指定する必要がある。
正解: 1,3,5
解説:
1.
正解です。Solaris10に関してはP2V、V2V(完全ルート、疎ルート)ともに移行可能です。ただしLegacy Container(Solaris8/9)はSolaris11では動かすことはできません。
2.
疎ルートモデルは廃止されました。すべて完全ルートモデルになります。ただし不変ゾーンという考え方が追加されています。(file-mac-profileプロパティで指定します。zonecfgのマニュアルを参照してください。)
3.
正解です。zonecfgで構成後にzoneadm -z s10_zone install -a
/s10zone.flar -u などでインストールできます。その他 ufsdumpのフルバックアップやcpioアーカイブ、cpioアーカイブのgzip/bzip2圧縮なども対応しています。あくまでも移行目的なのでDVDやISOからプレーンのSolaris10をインストールすることは考えられていません。
4.
非大域ゾーン内でZFSファイルシステムの管理はできますが、ZFSプールを非大域ゾーン内で作成・修正することはできません。ただし、大域ゾーンで作成したZFSファイルシステムをzonecfgのadd
datasetで非大域ゾーンに渡すことで、非大域ゾーンではZFSプールとして認識されます。ZFSの操作にあたって、追加の権限は不要です。また、非大域ゾーン内でもbeadmコマンドを使用してブート環境(BE)の管理が可能です。
5.
正解です。物理NICが1つしかないシステムでもVNICが自動的に作成されゾーンに割り当てられます。排他IPゾーンであれば、ゾーン内でdladmやipadmなどを使用してネットワーク構成、ルーティング構成、IPMP構成などを実行でき、snoopなども可能になります。共有IPゾーンの場合、DHCP構成にすることはできません。
6.
Solaris11から非大域ゾーンをNFSサーバーとして構成可能になりました。(ただし、solaris10ブランドゾーンは不可です。)
7.
UFSはサポートしていません。ただしLegacy Container(Solaris8/9)はSolaris11では動かすことはできません。
大域ゾーンで、dispadmin -d FSSを実行してデフォルトのスケジューラをFSSに変更後、再起動を完了させています。この状態で、現在稼働しているzone1のCPUシェア数を20に設定して、ゾーンの再起動後もその設定が維持されるようにするにはどのようなコマンドを実行すればよいですか。正しいものを3つ選択してください。
1.
zonecfg -z zone1
zonecfg:zone1> add rctl
zonecfg:zone1:rctl> set
name=zone.cpu-shares
zonecfg:zone1:rctl> add
value(priv=privileged,limit=20,action=none)
zonecfg:zone1:rctl> end
zonecfg:zone1> exit
2.
zonecfg -z zone1
zonecfg:zone1> set cpu-shares=20
zonecfg:zone1> exit
3.
zonecfg -z zone1
zonecfg:zone1> add dedicated-cpu
zonecfg:zone1:dedicated-cpu> set
ncpus=20
zonecfg:zone1:dedicated-cpu > end
zonecfg:zone1> exit
4.
zonecfg -z zone1
zonecfg:zone1> add capped-cpu
zonecfg:zone1:capped-cpu> set
ncpus=20
zonecfg:zone1:capped-cpu> end
zonecfg:zone1> exit
5.
prctl -n
zone.cpu-shares -v 20 -r -i zone zone1
6.
prctl -n
capped.cpu-shares -v 20 zone1
7.
rctladm -e syslog=err zone.cpu-shares
正解:1,2,5
解説:
1.
正解です。CPUシェア数はrctlリソースのzone.cpu-sharesリソース制御で決定できます。
2.
正解です。rctlリソースのzone.cpu-sharesを設定することと同じです。この設定方法が推奨されています。
3.
dedicated-cpuリソースでは排他的に割り当てるCPUの個数を指定できます。
4.
capped-cpuリソースではゾーンで使用できるCPUの能力の上限を指定できます。
5.
正解です。このコマンドで稼働中のzone1のCPUシェア数を動的に変更できます。再起動後は値が引き継がれないため、永続化するにはA)もしくはB)の設定も必要です。
6.
capped.cpu-sharesというリソース制御は存在しません。
7.
rctladmはシステムのリソース制御の大域アクションを設定できます。zone.cpu-sharesリソース制御に関してはsyslogアクションは無効なのでエラーになります。仮に、zone.max-lwpsリソース制御に関して同様に実行した場合、zone.max-lwpsで指定したしきい値に達した場合にerrレベルのメッセージがsyslogに送られるようになります。
以下のコマンド出力に関する説明のうち正しいものを3つ選択してください。
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
2 zone1 running /zones/zone1 solaris excl
- zone2 incomplete /zones/zone2 solaris
excl
- zone3 configured /zones/zone3 solaris10 excl
1.
zone2はインストール中の可能性があるが、この状態が長く続くのであれば、いったんアンインストールして再インストールしなければ正常な状態には戻せない。
2.
このコマンド出力はzoneadm list -iv の結果である。
3.
zone3は構成済みなのですぐに起動できる状態である。
4.
zonecfg -z zone3 export によりzone3を別のシステムに移行するためにシステムから切り離すことができる。
5.
zone3 はsolaris10ブランドゾーンである。
6.
globalゾーンは稼働中なので安全に停止するにはzoneadm -z global shutdown を実行する。
7.
稼働している大域ゾーン(global)とzone1のCPUや物理メモリの使用状況はzonestat コマンドで確認できる。
正解:1,5,7
解説:
1.
正解です。通常incompleteはインストール中、アンインストール中の一時ステータスです。
ちなみにzoneadm -z zone_name mark incomplete で管理上の都合で意図的にincompleteにすることもできます。
2.
configuredステータスのzone3も表示されているため、-cオプションは必要で、zoneadm list -vc の結果であると考えられます。
3.
起動の前にインストール作業が必要です。installedもしくはreadyステータスのゾーンのみが起動可能です。
4.
これはzone3のコマンド形式の構成を表示するコマンドです。-f オプションもしくは出力リダイレクトでファイルに保存すれば、そのファイルを使ってzonecfg -z zone_name -f file_nameで構成をインポートすることにより、素早くゾーンの構成を済ませることもできます。ゾーンの構成情報を見るだけであればzonecfg -z zone3 info が一般的です。
5.
正解です。構成時にcreate -t SYSsolaris10 を指定すると、このようにBRAND列にsolaris10と表示されます。
6.
大域ゾーンであるglobalはzoneadmコマンドでは停止しません。通常のshutdownやinitコマンドを使用します。非大域ゾーンであれば、zoneadmのshutdownサブコマンドで安全に停止することが可能です。他にも zlogin zone1 shutdown -i 0 なども可能です。
7.
正解です。zonestat -R total 2s 30 10s と指定すると2秒ごとに30回、さらに10秒ごとにtotalレポートを出力します。-q オプションを追加すると要約レポートのみ表示することも可能です。-rで個別リソースの指定も可能です。詳しくはzonestatコマンドのマニュアルを参照してください。
Oracle
Solaris 11のネットワークの管理
以下のコマンド出力から読み取れる情報として正しいものを3つ選択してください。
# dladm
show-phys
LINK MEDIA STATE SPEED
DUPLEX DEVICE
net1 Ethernet up 1000
full e1000g1
net2 Ethernet up 1000
full e1000g2
net0 Ethernet up 1000
full e1000g0
net3 Ethernet unknown 0
unknown e1000g3
# ipadm
show-if
IFNAME CLASS STATE
ACTIVE OVER
lo0 loopback ok yes
--
net0 ip
ok yes --
net1 ip down
no --
net2 ip down
no --
# ipadm
show-addr
ADDROBJ TYPE STATE ADDR
lo0/v4 static ok
127.0.0.1/8
net0/v4 static ok 192.168.0.100/24
net1/v4 static duplicate
192.168.0.111/24
net2/v4 static down
192.168.0.102/24
lo0/v6 static ok
::1/128
net0/v6 addrconf ok fe80::a00:27ff:fe11:4a2e/10
1.
このシステムではe1000g0~e1000g3の4つのNICが認識されており、それぞれnet0~net3というリンク名になっている。
2.
net0、net1、net2にはIPv4アドレスが設定されているが、どのインターフェースも利用できない状態である。
3.
net0に設定されているIPv4アドレスのネットマスクは255.255.255.0である。
4.
この状態でipadm create-ip net2 と実行するとnet2がアクティブな状態になる。
5.
この状態で ipadm up-addr net1/v4 と実行するとnet1がアクティブな状態になる。
6.
net1/v4に設定されているIPv4アドレスはローカルネットワーク内で重複している可能性がある。
正解:1,3,6
解説:
1.
正解です。dladm show-physの結果のLINK列、DEVICE列から判断できます。
2.
net0はipadm show-ifのACTIVE列でyesとなっているので利用できます。
3.
正解です。ADDR列の/24から24bitマスク(255.255.255.0)であることがわかります。
4.
net2インタフェースは既に作成されているのでInterface already exist というエラーになります。
5.
net1/v4はduplicate 状態なのでupするだけではアクティブにはなりません。net2/v4であればdown状態なのでupするだけでアクティブになります。
6.
正解です。duplicate状態から読み取れます。ローカルネットワーク内であればarpコマンドでアドレスの重複の裏付けを取ることができます。
net0とnet1を使用してリンク集約aggr0を作成しました。リンク集約の構成や各リンクがどのようにロードバランスしているかを確認することができるコマンドを3つ選択してください。
1.
dladm show-link
2.
traceroute aggr0
3.
ping -a aggr0
4.
dlstat show-aggr
5.
dladm show-aggr
6.
ifconfig -a
7.
ipmpstat -i
正解:1,4,5
解説:
1.
正解です。一般にリンク名の一覧表示目的で使用しますが、リンク集約aggr0のメンバーとなっているリンクの確認も可能です。Solaris11のデフォルトのデータリンク名はnet0やnet1となっています。
2.
tracerouteコマンドにリンク集約aggr0を指定するのは不正です。ホスト名もしくはIPアドレスを指定することで、そのホストまでの経路を探索することができます。この探索にはICMPが利用されています。
3.
pingコマンドにリンク集約aggr0を指定するのは不正です。ホスト名もしくはIPアドレスを指定することで、そのホストまでのIP接続の可否を確認することができます。この確認にはICMPが利用されています。
4.
正解です。束ねたリンクのそれぞれの利用状況(ロードバランス具合)を確認することができます。また、dlstat show-link -rコマンドで、リンク集約のリンクも含めて統計情報の表示が可能です。-rは受信側の情報のみに限定しています。出力の中のINTRS列は物理NICへの割り込み数を意味し、仮想NICやetherstubに関しては常に0になります。
5.
正解です。リンク集約の構成(LACP構成など)を確認できます。
6.
IPインタフェースの構成情報を確認できるレガシーコマンドですが、リンク集約の構成は確認できません。
7.
IPMP構成のインタフェース情報を表示するコマンドです。このコマンドのFLAGS部分の意味(i: アクティブでない、m,M: マルチキャストなど)はipmpstatのマニュアルを参照してください。
dladm
rename-linkコマンドでデータリンク名を変更しようと思います。リンク名を変更するメリットと新規作成するリンク名の命名規則についての正しい説明を3つ選択してください。
1.
link0_ipmp0などと名前変更することにより、用途(IPMPのメンバー)を明確にできる。
2.
リンク集約の新規作成や構成変更が簡素化される。
3.
物理NICを異なるタイプのものに変更しても、IP フィルターのフィルタリング・ルールやOracle RACなどのアプリケーション構成への影響を最小限にできる。
4.
ipadm delete-addrコマンドでネットワーク・インタフェースの構成を誤って削除することがなくなる。
5.
新しいリンク名は英字で始め、数字で終わらせ、31文字以内にする必要がある。
6.
new_link01というリンク名を設定することができる。
7.
new-link1というリンク名を設定することができる。
正解: 1,3,5
解説:
1.
正解です。Solaris 11のデフォルトのリンク名net0、net1 ...も実は別名です。Solaris 11 Expressまでは従来のようにNICのドライバ名を踏襲したe1000g0などが使用されていました。ちなみにSolaris 11 ExpressからSolaris 11にアップグレードした場合は従来のNIC名が維持されます。
2.
用途を明確にはできますが、構成変更が簡素化されることはありません。
3.
正解です。データリンク名(IPインタフェース名)を認識するアプリケーションやIPフィルタのルールなどで構成変更をしないで済むことがあります。
4.
リンク名の変更と操作ミスの撲滅には直接的な関係はありません。
5.
正解です。命名規則の詳細はdladmのマニュアルを参照してください。
6.
最後の数字を0で始めてはいけません。new_link0はOKです。
7.
使用できる特殊文字は下線「_」とピリオド「.」の2つだけです。new_link1やnew.link1というリンク名であれば設定できます。
IPMPの構成やリンク障害検出プロセスについての間違っている説明を2つ選択してください。
1.
デフォルトの障害検出時間(FDT)は10秒で、/etc/default/mpathdファイルに設定がある。
2.
プローブターゲットが存在しない場合、障害の検出は不可能である。
3.
通常、プローブターゲットの決定は、まずルーティングテーブルを参照して、同一ネットワーク上のルーターが採用される。
4.
ルーティングテーブルでルーターがマッチしなかった場合にはマルチキャスト224.0.0.1を使用して同一サブネット上のすべてのマシンからプローブターゲットを決定する。
5.
routeコマンドで静的ルートなどを登録してルーティングテーブルを調整することにより、任意のプローブターゲットに変更することもできる。
6.
IPMPグループを構成するIPインタフェースにテストアドレスを設定しなかった場合でも、IPMPは障害の検知はでき、インタフェースのフェイルオーバーは可能だが、障害復旧の検知はできないため、フェイルバックは自動的には行われない。
7.
IPMPを構成したがテストアドレスを設定していない場合に以下のような状態になる。
# ipadm show-if
IFNAME CLASS STATE
ACTIVE OVER
lo0 loopback ok yes
--
net0 ip ok
yes --
net1 ip ok
yes --
net2 ip ok
yes --
ipmp0 ipmp ok
yes net1 net2
# ipmpstat -i
INTERFACE ACTIVE GROUP
FLAGS LINK PROBE
STATE
net2 yes ipmp0
------- up disabled ok
net1 yes ipmp0
--mbM-- up disabled ok
# ipmpstat -nt
INTERFACE MODE TESTADDR TARGETS
net2 disabled -- --
net1 disabled -- --
正解:2,6
解説:
1.
その通りです。FAILURE_DETECTION_TIME=10000のエントリがあります。(単位はミリ秒)
2.
間違っています。リンクベースのIPMPで検出可能です。リンクベースのIPMPはデフォルトで有効です。
3.
その通りです。一般的なホストではプローブターゲットはデフォルトルーターになることが多くなります。デフォルトルーターの構成はroute add default 192.168.0.1コマンドや/etc/defaultrouterファイルで行います。
4.
その通りです。ルーティングテーブルに明示的にルーターが登録されていない場合はこの動きになります。
5.
その通りです。ネットワークルートより、ホストルート(32bitマスク)が優先されます。
6.
間違っています。リンクベースのIPMPにより復旧の検知も可能です。
7.
その通りです。ipmpstat -i でSTATEがok、PROBEがdisableになります。また、ipmpstat -ntでMODEがdisabled、TESTADDRが--になります。
Solaris11
11/11(初期版)Network Auto-Magic(NWAM)についての正しい説明を3つ選択してください。
1.
NWAMの有効/無効はデスクトップ右上のアイコンでも確認ができる。
2.
ネットワーク構成プロファイル(NCP)をDefaultFixedに設定することによりNWAMは無効化できる。
3.
/etc/ipadm/ipadm.confや/etc/dladm/datalink.confファイルの設定がNWAMの構成に使用される。
4.
NWAMが有効な場合は、NCPとロケーションプロファイルが1つずつアクティブになる。
5.
リンク集約で使用されているNICの障害を検知して、NWAMにより構成を自動的に変更できる。
6.
IPMPで使用されているNICの障害を検知して、NWAMにより構成を自動的に変更できる。
7.
dladm create-vnicコマンドによる仮想NICの作成は、NWAMによる自動構成のトリガーになる。
正解: 1,2,4
解説:
1.
正解です。また、無線LANと有線LANでアイコンも異なります。
2.
正解です。netadm listコマンドやnetwork/physical:defaultサービスのnetcfg/active_ncpプロパティで現在設定されているNCPを確認できます。
3.
Solaris11 11/11版では、NWAMの構成に使用されるファイルは/etc/nwam/*の各種ファイルになります。
4.
正解です。常に1つのアクティブなNCPと1つのロケーション(場所)プロファイルが有効になります。
5.
NWAMはリンク集約には対応していません。
6.
NWAMはIPMPには対応していません。
7.
NWAMは仮想NICには対応していません。DHCPリースの取得や、WLANカードやEthernetケーブルの抜き差しによるリンクのup/downはNWAM自動構成のトリガーになります。
Oracle
Solaris 11のユーザー管理とセキュリティ
ユーザーアカウント、グループ、役割(ロール)についての説明のうち正しいものを3つ選択してください。
1.
ユーザーID(UID) 0~999 はシステムに予約されている。
2.
非推奨だがUIDを重複させてユーザーを作成することは可能である。
3.
idコマンドで確認できるグループ情報が、ファイルやディレクトリを作成した場合の、デフォルトのグループ所有権になる。
4.
アカウント名には英数字以外にも「.」「-」「_」の特殊文字の使用が可能。
5.
自分の所属グループは/etc/groupファイルを確認すればすべて把握できる。
6.
groupadd Test を実行すると、正常に実行されTestグループが作成される。
7.
パスワードの最小文字数は/etc/security/policy.confで設定されておりデフォルトで8である。
正解:2,3,7
解説:
1.
UID 0~99がシステムに予約されています。100~60000の利用が推奨されていますが60000以降のIDも使用可能です。また、非推奨ですが、useradd -oオプションでUIDを重複させてユーザーを作成することができます。
2.
正解です。idコマンドで表示されるグループが現在のグループです。所属グループをすべて表示するにはid
-aを使用します。
3.
正解です。アカウント名のルールはman -s 4 passwd で確認可能です。
4.
/etc/groupファイルのユーザーリスト部分は2次グループの情報です。1次グループ(プライマリグループ)は/etc/passwdにしか登録されていません。デフォルトではプライマリグループ含めて16グループまで所属可能です。
5.
Testグループは作成されますが、すべて小文字にするようにエラーが出ます。
6.
パスワードの最小文字数は/etc/default/passwdで設定されており、デフォルトで6文字です。
7.
正解です。ちなみにusermod -R +root user1というコマンドでuser1にroot役割を追加できます。+がない場合は既存の役割を指定した役割で置き換えます。
カレントディレクトリに以下のようなファイルがあり、test.sh、 test2.sh、
test3.shの3つのファイルを~/script ディレクトリにコピーして、それぞれ実行権を付与したいと考えております。以下のうち、目的の結果になるものを2つ選択してください。現在のumask値は0022であると仮定します。
-rw-r--r-- 1 oracle
oinstall 0 2月 25日 14:30 script.sh
-rw-r--r-- 1 oracle oinstall 0
2月 25日 14:27 test.sh
-rw-r--r-- 1 oracle oinstall 0
2月 25日 14:27 test2.sh
-rw-r--r-- 1 oracle oinstall 0
2月 25日 14:27 test3.sh
1.
cp *.sh ~/script
chmod u+x ~/script/*.sh
2.
chmod u+x test*.sh
cp test*.sh ~/script
3.
cp test*.sh ~/script
chmod u+x ~/script/test*.sh
4.
umask 0011
cp test*.sh ~/script
5.
cp test?.sh ~/script
chmod u+x ~/script/test?.sh
正解:2,3
解説:
1.
script.shもコピーされてしまうので不正解です。
2.
正解です。デフォルトのumask値ではコピーしても実行権は削除されないため、先にパーミッションを変更して、コピーしても目的の結果になります。
3.
正解です。目的の結果になります。
4.
umaskでは実行権の付与はできません。umask値には、ファイルの新規作成時やコピー時に与えたくない権限を指定します。スクリプトファイルへの実行権の付与にはchmodコマンドの実行は必要で、viでも保存時に実行権を自動的に与えるオプションはありません。
5.
"?"は任意の1文字を表すため、これではtest.shがコピーされません。
ユーザーoracleはbashを使用しています。ユーザーの各種環境設定ファイルの説明のうち正しいものを2つ選択してください。
1.
/etc/profileと$HOME/.profile に同じ環境変数のエントリがあった場合には/etc/profileのエントリが適用される。
2.
/etc/skel/local.profileはユーザーの作成時に自動的に各ユーザーのホームディレクトリにコピーされるため、このファイルに管理者が環境変数の設定などを追記しておくことで、一般ユーザーは何もしなくても自動的にその設定を利用することができる。
3.
/etc/profile → $HOME/.profile → $HOME/.bashrc
の順序で読み込まれるので、同じ環境変数の設定が重なった場合は最後に読み込まれたエントリが適用される。
4.
/etc/profileと$HOME/.profileはログイン時に1度だけ、$HOME/.bashrcはbash起動のたびに読み込まれる。
正解:3,4
1.
後に読み込まれる$HOME/.profileのエントリが適用されます。
2.
local.profileという名前のままコピーされるため、そのままでは読み取られません。ユーザー側で.profileなどに名前変更をして使用します。
3.
その通りです。
4.
その通りです。
以下のようなコマンドの実行結果があります。リモートホストのIPアドレスは192.168.0.100であると仮定しています。
$ ssh
192.168.0.100
ssh: connect to host 192.168.0.100 port 22: Connection refused
この結果の説明として正しいものを1つ選択してください。
1.
リモートホスト(192.168.0.100)の公開鍵が$HOME/.ssh/known_hostsファイルに登録されていない。
2.
ローカルホストの公開鍵がリモートホストの/etc/ssh/known_hostsファイルに登録されていない。
3.
リモートホストでsshのサービスが動作していない可能性がある。
4.
ローカルホストでsshのサービスが適切に構成されていない可能性がある。
5.
ローカルホストの/etc/ssh/sshd_configファイルを修正する必要がある。
正解:3
解説:
1.
この場合以下のようなメッセージになります。yesと入力するとknown_hostsファイルにリモートホストの公開鍵(/etc/ssh/*.pub)が登録されます。
-------------------------------------------------------------------------
ホスト
'10.190.96.242 (10.190.96.242)' の認証を確立できません.
RSA 鍵フィンガープリントは
af:b3:f4:4e:89:e6:34:ee:c2:33:45:9a:5b:ba:cc:48 です
本当に接続を継続してもよろしいですか (yes/no)? yes
警告: 既知ホストのリストに '10.190.96.242'
(RSA) を追加しました。
-------------------------------------------------------------------------
2.
/etc/ssh/known_hostsファイルはホスト認証時にクライアントの公開ホスト鍵を登録するときに使用します。
3.
正解です。Connection refusedというメッセージはリモートホスト側でsshdサービスが動作していない場合に表示されます。
4.
ローカルホストのsshサービスはアクセス時には関係ありません。
5.
/etc/ssh/sshd_configファイルはsshサービスの構成ファイルですが、このアクセスにおいて、ローカルのファイルは関係ありません。
以下のコマンド出力があります。
$ who am i
root pts/1 2月 25日 17:38 (10.185.209.212)
$ id
uid=103(oracle) gid=100(oinstall)
$ ls -ld .
drwxr-x--- 2 oracle oinstall
512 2月 25日 17:43 .
$ ls -l *.sh
-rwxr-xr-x 1 oracle oinstall
75 2月 25日 17:43 script.sh
$ id user1
uid=101(user1) gid=1(other)
$ cd ~user1
$ ls -l *.sh
-rwsr-xr-x 1 user1 other 59
2月 25日 17:41 test.sh
この結果から読み取ることができる情報として正しいものを3つ選択してください。
1.
rootでログインをしてsuコマンドでoracleユーザーに変更している状態である。
2.
oracleユーザーでログインをしてsuコマンドでrootに変更している状態である。
3.
現在のユーザーでtest.shを実行するとtest.shプロセスはuser1の権限で動作する。
4.
現在のユーザーでtest.shを実行しようとしてもこのファイルの所有者でないためエラーになる。
5.
user1ユーザーはscript.shを実行することはできない。
6.
user1ユーザーはscript.shファイルを読み取ることはできる。
正解:1,3,5
解説
1.
正解です。who am i は元のログイン情報、whoamiとidは現在の権限情報が表示されます。
2.
who am i は元のログイン情報、whoamiとidは現在の権限情報が表示されます。
3.
正解です。test.shにはsetuidが設定されているため、誰が実行してもtest.shプロセスはファイルの所有者であるuser1の権限で動作します。chmod 4755 test.shを実行することによりこのパーミッション設定にすることができます。
4.
その他のユーザーにも実行権があるためエラーにはなりません。
5.
正解です。user1にはscript.shの実行権はありますが、親ディレクトリにアクセス権(実行権)がないため、script.shにたどりつくことができず実行することはできません。
6.
Eと同様な理由で読み取りも含めて一切のアクセスができません。
以下のBARTルールファイルがあります。
# cat bart_rule1
CHECK all
IGNORE dirmtime
/export/home
IGNORE mtime size contens
/etc/security
/etc/ipadm
/etc/dladm
/etc/nwam
IGNORE mode
/var/tmp
IGNORE all
このルールファイルを使用してbartコマンドを実行したとき、記録される属性の説明のうち正しいものを3つ選択してください。
1.
/etc/security/exec_attr.dディレクトリの uid、gid、size、dirmtime
2.
/export/home/user1/dir1ディレクトリのuid、gid、size、contents
3.
/export/home/user1/.bashrcファイルのuid、gid、mode、acl
4.
/export/home/user1/.bashrcファイルのuid、gid、mode、dest
5.
/var/adm/messagesファイルのuid、gid、size、contents
6.
/var/adm/messagesファイルのuid、size、mode、devnode
7.
/etc/hostsファイルのuid、gid、size、mode、lnmtime、dest
正解:3,5,7
解説
1.
グローバル設定でdirmtime属性はIGNOREに設定されているのでdirmtimeは記録されません。
2.
ディレクトリに対してはcontents属性は記録されません。
3.
正解です。
4.
シンボリックリンク以外のファイルにはdest属性は記録されません。
5.
正解です。
6.
devnode属性はキャラクタ型デバイス、もしくはブロック型デバイスファイルにのみ有効です。
7.
正解です。/etc/hostsファイルはシンボリックリンクなので、lnmtimeやdest属性も記録されます。
システムにはtestadminという役割が定義されており、user1がこの役割を担っています。testadmin役割に対してログインやすべてのコマンド実行(引数含む)を監査するように変更するにはどのようなコマンドを実行する必要がありますか。正しいものを3つ選択してください。
1.
auditconfig setpolicy +argv
2.
auditconfig setpolicy +ahlt
3.
rolemod -K audit_flags=lo,ex:no testadmin
4.
usermod -K audit_flags=lo,ex:no testadmin
5.
usermod -K limitpriv=all,\!file_write user1
6.
audit -s
7.
audit -t
正解:1,3,6
解説
1.
正解です。監査レコードにコマンドの引数を含めるように監査ポリシーを変更しています。
2.
ahltポリシーは、監査キューが高位境界値に達したか、領域不足などで非同期イベント(プロセスに関連付けられていないイベント)が記録できなくなった場合にマシンを停止します。
3.
正解です。testadmin役割に対してloクラスとexクラスのイベントを監査するように設定しています。
4.
testadminは役割なのでusermodコマンドはエラーになります。
5.
このコマンドはuser1の制限セットからfile_writeという基本的な特権を剥奪しているので、user1はファイルへの書き込みが一切できなくなります。
6.
正解です。このコマンドは監査サービスをスタートします。既に有効になっている場合は構成変更を反映します。
7.
このコマンドは監査サービスを停止します。
監視とトラブルシューティング
以下のコマンド出力があります。
$ echo $$
18511
$ ps -ef
...(出力省略)
oracle 18532 18531 0 10:51:47 pts/1 0:00 sleep 1000
oracle 18531 18511 0
10:51:47 pts/1 0:00 /bin/bash
./script.sh
oracle 18511 18419 0 10:50:28 pts/1 0:00 -bash
...(出力省略)
この結果から読み取ることができる情報として正しいものを3つ選択してください。
1.
kill 18531 と実行することでsleepプロセスにSIGKILLシグナルが送られsleepプロセスを強制終了できる。
2.
pkill sleep と実行することで sleepプロセスを終了することができる。
3.
現在使用しているシェルからscript.shスクリプトが実行されている。
4.
sleep 1000はユーザーが現在使用しているシェルから手入力で実行したコマンドである。
5.
pgrep sleep と実行すると18531というPIDが返される。
6.
pargs -ae 18532 と実行することでsleepプロセスの引数や環境変数の情報を調べることができる。
正解:2,3,6
解説:
1. killコマンドでシグナルを指定しなかった場合にはシグナル15(SIGTERM)が送られ、順序正しく停止します。またPID18531はscript.shを実行している bashのプロセスなのでsleepは終了しません。
2. 正解です。killコマンドでは プロセスIDを指定、pkill コマンドではプロセス名を指定することでプロセスを終了できます。
3. 正解です。bash(18511)→script.sh(18531)→sleep(18532)という親子関係が読み取れます。
4. sleepプロセスはscript.shスクリプト内から呼び出されています。
5. 18531はPPID(親プロセスID)、sleepのPIDは18532です。
6. 正解です。pargs コマンドのデフォルトは引数(-aオプション)のみの表示ですが、-eで環境変数の情報を取得できます。詳しくはpargsのマニュアルを参照してください。
以下のコマンド出力があります。
$ id
uid=103(oracle) gid=100(oinstall)
$ crontab -e
crontab: you are not authorized to use cron.
Sorry.
この結果から読み取ることができる情報として正しいものを2つ選択してください。
1. crontabコマンドはデフォルトではroot権限でしか実行できない。
2. /etc/cron.d/cron.denyファイルにoracleがエントリされている可能性がある。
3. /etc/cron.d/cron.allowファイルが存在しない。
4. /etc/cron.d/cron.allowファイルが存在して、そのファイルにoracleがエントリされていない可能性がある。
5. PATH変数にcrontabコマンドが格納されているディレクトリが登録されていない。
正解:2,4
解説:
1. デフォルトでは一般ユーザでもcrontabコマンドの実行は可能です。
2. 正解です。crontabコマンドでcrontabファイル(/var/spool/cron/crontabs/*)の作成・変更を制御するには/etc/cron.d/cron.denyとcron.allowファイルを使用します。デフォルトではcron.denyファイルのみ存在し、このファイルにエントリされているユーザーのみ禁止されます。cron.allowファイルを作成すると動作が変わり、cron.allowファイルに登録されているユーザーのみが許可されるようになります。どちらのファイルも存在しない場合はroot権限でのみ使用可能になります。
3. 上記仕様のため不正解です。
4. 正解です。上記仕様のためです。
5. PATH変数にコマンドの格納ディレクトリが登録されていない場合は、"command not found"というエラーになります。
6. ちなみにログのローテーションはrootのcrontabsで実行されているlogadmによって行われています。/var/adm/messagesファイルなどのローテーションがデフォルトで行われています。
クラッシュダンプの構成が以下のようになっています。
# dumpadm
Dump content: kernel pages
Dump device:
/dev/zvol/dsk/rpool/dump (dedicated)
Savecore directory: /var/crash
Savecore enabled: yes
Save compressed: on
検証目的でシステムを動作させたまま、すべてのメモリページを含むクラッシュダンプファイルを取得し、mdbコマンドで解析できるようにvmcore.0やunix.0を取り出したいと考えています。どのようなコマンドを実行する必要がありますか。3つ選択してください。
1. dumpadm -c all
2. dumpadm -d swap
3. reboot -d
4. savecore -L
5. savecore -f /var/crash/vmdump.0
正解:1,4,5
解説:
1. 正解です。dumpadmの-cオプションでダンプの内容を指定できます。kernel、all、curprocなどの指定が可能です。allの指定ですべてのメモリページを取得できます。
2. dumpadmの-dオプションでダンプデバイスを指定可能です。システムを動作させたままクラッシュダンプを取得する(ライブダンプを行う)場合はダンプデバイスを専用デバイス(dedicated)にする必要があります。swapがZFSボリュームの場合は-d swapはエラーになります。
3. reboot -dでも強制的にリブートしてクラッシュダンプを取得することができますが、「システムを動作させたまま」ではないので不正解です。
4. 正解です。このコマンドでシステムを動作させたままクラッシュダンプを取得できます。
5. 正解です。このコマンドで圧縮されたvmdump.0からunix.0とvmcore.0を取り出すことができます。
coreadmコマンドの実行結果が以下のようになっています。
# coreadm
global core file pattern:
global core file content: default
init core file pattern: core
init core file content: default
global core dumps: disabled
per-process core dumps: enabled
global setid core dumps: disabled
per-process setid core dumps: disabled
global core dump logging: disabled
コアファイルの管理についての説明として正しいものを3つ選択してください。
1. coreadm -e globalによりグローバルコアダンプが有効になる。
2. coreadm -d processによりプロセス単位コアダンプが無効になる。
3. プロセス単位コアダンプを無効にすると自動的にグローバルコアダンプも無効になる。
4. プロセス単位コアダンプの保存先は変更できない。
5. coreadmによるコアファイルの管理は非大域ゾーン内でも設定可能である。
6. coreadmコマンドで出力される情報は/etc/coreadm.confファイルに格納されている。
7. coreadm -g /var/cores/core.%f.%p.%z はグローバルコアファイルのコンテンツを指定している。
正解:1,2,5
解説:
1. 正解です。-eオプションで有効にしています。なお、グローバルコアダンプファイルの所有者はrootでその他のユーザーには一切のアクセス権がありません。
2. 正解です。-dオプションで無効にしています。なお、プロセス単位コアダンプファイルの所有者はプロセスの所有者になるので、コアファイルをrootのみに限定してアクセスさせるべき環境ではプロセス単位コアダンプを無効化します。
3. プロセス単位コアダンプとグローバルコアダンプはそれぞれ独立して有効化/無効化できます。
4. プロセス単位コアダンプの保存先はcoreadm -i でinitコアのパターンを変更してシステム全体に反映(継承)させるか、coreadm -p で各ユーザーレベルで変更することができます。
5. 正解です。非大域ゾーン内の指定のディレクトリにコアファイルは保存されます。
6. Solaris11では/etc/coreadm.confファイルは存在しません。coreadmコマンドによる構成変更はすべてcoreadmサービスのプロパティとして管理されます。
7. グローバルコアファイルのコンテンツの指定には-Gオプションを使用します。-gはグローバルコアファイルのパターンの指定になり、%fは実行ファイル名、%pはプロセスID、%zはゾーン名を意味します。