Glynn Foster著
2013年11月公開
|
このラボでは、Red Hat Enterprise Linuxの使用経験がある管理者向けに、Oracle Solaris 11の管理の基本について説明します。具体的な内容は、ユーザーの追加とロールの割当て、自動および手動によるネットワークの構成、ZFSファイル・システムによるストレージの管理、Oracle Solaris Zonesによる仮想化されたアプリケーション分離の実現、サービス管理フレームワークによるサービスの管理といったシステム構成全般です。ソフトウェアのライフ・サイクルや、Image Packaging System(およびZFSブート環境を使用したフェイルセーフ更新)によるソフトウェアのインストールおよび更新の方法についても説明します。
また、Red Hat Enterprise Linuxにおける操作と比較し、Oracle Solaris 11固有の差別化要因をいくつか紹介します。
このラボは、グラフィカル・インタフェースとコマンドライン・インタフェースの両方によるRed Hat Enterprise Linuxシステムの管理に関する基本的な知識を持っていることが前提となっています。
このラボでは、Oracle VM VirtualBoxを使用し、Oracle Solaris 11がインストールされた仮想マシンを使用します。Oracle Solaris 11仮想マシンは、このラボに関するかぎり、ベアメタル・インスタンスとして扱うことができます。
このラボでは、"Oracle Solaris 11"と"Oracle Solaris 11 Client Install"という2つの構成済み仮想マシンを使用します。
"Oracle Solaris 11"は、Oracle Solaris 11が事前インストールされた仮想マシンで、完全なデスクトップ環境を提供します。この仮想マシンには2つのネットワーク・インタフェースがあり、その両方が内部ネットワーク構成によって接続されています。また、追加の4GB SATAストレージ・コントローラも接続されています。ローカル・パッケージ・リポジトリが/repository
にセットアップされており、これはhttp://pkg.oracle.com
でホストされる"リリース"パッケージ・リポジトリのコピーです。この構成は、最初の演習にのみ必要です。
"Oracle Solaris 11 Client Install"仮想マシンは、空の仮想マシンです。この仮想マシンは、CD/DVDドライブとそれに接続された仮想Oracle Solaris 11の対話型テキスト・インストーラISOイメージによって構成されています。この仮想マシンには、内部ネットワーク構成を使用して構成された1つのネットワーク・インタフェースがあります。システムのブート順序は、まずネットワーク、次に仮想CD/DVDドライブ、最後にハード・ディスクの順で起動するように構成されています。
このラボでは、次のログイン資格証明を使用します。ouser
アカウントには、root
ロールが割り当てられています。他のオペレーティング・システムと異なり、Oracle Solaris 11では、監査上の理由から、root
でシステムに直接ログインすることはできず、個別のユーザー・アカウントでログイン後にroot
ロールを継承する必要があります。
ユーザーID | パスワード |
---|---|
ouser |
Oracle 123 |
root |
solaris11 |
このラボは、多数の基本的な管理タスクを説明するいくつかの異なる演習に分かれています。各演習は、相互に独立しています。
その領域のより高度な管理を学習したい場合のために、演習の最後には追加のタスクが用意されています。これらの追加タスクを完了するための手順は示されていないため、必要に応じて、製品ドキュメント、オンラインHow-Toガイド、およびマニュアル・ページを参照してください。
表2:演習演習 | タイトル | 学習内容 |
---|---|---|
1 | インストール |
|
2 | ソフトウェアのパッケージ化 |
|
3 | ファイル・システム |
|
4 | ネットワーク |
|
5 | ユーザー管理 |
|
6 | サービス |
|
7 | 仮想化 |
|
このラボを終了することにより、Oracle Solaris 11の基本的な管理を習得し、インストール、ソフトウェアのパッケージ化、ファイル・システム、ユーザー管理、サービス、ネットワーク、仮想化といった領域でのOracle Solaris 11とRed Hat Enterprise Linuxの相違を理解できます。製品ドキュメント、マニュアル・ページ、またはオンラインHow-To記事を参照することにより、より高度な管理タスクも容易に調べて実行できます。また、ヘルプ情報の入手先も知ることができます。
Oracle Solaris 11には、いくつかの異なるインストール・オプションが付属しています。ニーズとインストールするシステムに応じて、適したオプションを選択してください。これらのオプションにより、スタンドアロン・サーバーのインストール、多数の異なるサーバーの自動インストール、または完全なデスクトップ環境でのオペレーティング・システムの簡単な評価といったニーズに柔軟に対応できます。Oracle Solaris 11のインストール・オプションは、以下のとおりです。
表3:インストール・オプションインストール・メディアの種類 | 一般的なユースケース |
---|---|
LiveCD/LiveUSB | グラフィカルなインストーラを使用して、完全なOSとデスクトップ環境を起動します(インストールはオプション)。この環境は評価に最適です。 |
対話型テキスト・インストーラ | テキストベースのグラフィカルなインストーラを使用して、最小化されたOSをインストールします。この環境はほとんどのサーバー・インストールの基盤に最適です。 |
自動インストーラ | インストール・マニフェストを使用してネットワーク経由で複数のシステムをプロビジョニングする機能を提供します。 |
対話型テキスト・インストーラを使用すると、ほとんどのサーバー指向の状況に役立つ、あらかじめ決められたソフトウェア一式をインストールできます。このインストーラでは、ディスクの選択およびパーティショニング、ネットワーク、ユーザー、タイムゾーンなどの簡単なシステム構成を順番に実行できます。高度な構成は、OSをインストールして起動した後に実行できます。
Oracle VM VirtualBoxで"Oracle Solaris 11 Client Install"仮想マシンを起動します。この仮想マシンは、最初にネットワークを起動し、次にISOインストール・イメージを起動するように事前に構成されています。ネットワークがタイムアウトするのを待ってから、以下の手順に従って、対話型テキスト・インストーラによるインストールを完了してください。いくつかの基本的な構成を求めるメッセージが表示されたら、インストール全体が完了していなくても、次のセクションに進んでください。
図1:キーボード・レイアウトの選択
図2:デフォルト言語の受け入れ
図3:インストール・プロセスの開始
図4:Welcome画面
図5:ディスク検出方法の選択
図6:ディスクの選択
図7:ディスク全体の選択
図8:自動ネットワーク接続の構成の選択
図9:地域の選択
図10:場所の選択
図11:タイムゾーンの選択
図12:時刻と日付の選択
rootユーザー:
パスワード:solaris11
Oracleユーザー:
ユーザー名:ouser
パスワード:Oracle123
図13:ユーザーの詳細情報の入力
図14:匿名登録の選択
図15:プロキシ不使用の選択
図16:選択の確認とインストールの開始
図17:再起動
対話型テキスト・インストーラによるシステムのインストールが正常に完了したら、この仮想マシンは不要になるため、仮想マシンを閉じることができます。
ご存じですか Red Hat Enterprise Linuxは、スタンドアロン・システム・インストールにAnacondaインストーラを使用します。Anacondaはテキストの対話型インストーラとグラフィカルな対話型インストーラをサポートしており、管理者は、ディスク/パーティショニング、ソフトウェア/リポジトリの選択、ネットワーク、およびその他のシステム構成に関するいくつかのさまざまな質問に順番に応えることでインストールを実行できます。詳しくは、Red Hatのカスタマ・ポータルを参照してください。 Oracle Solaris 11で使用可能なインストール構成はAnacondaに比べて限られているように見えるかもしれませんが、これはクライアントを迅速に稼働させるための戦略であり、初期インストールの完了後には追加のカスタマイズが可能です。より高度なシステム・プロビジョニングを必要とする管理者は、自動インストーラの使用またはシステム・バックアップからのデプロイを検討してください。 |
自動インストーラを使用すると、ネットワーク経由で一度に多数のシステムをインストールできます。クライアントは、システム上で動作する自動インストーラ・サービスに接続し、インストール・マニフェストと照らし合わされます。インストール・マニフェストには、ソフトウェアの選択、仮想化環境、システム構成など、クライアントのインストール方法の詳細が規定されています。クライアントは、自動インストーラ・サービスに接続してこの情報を受け取ると、パッケージ・リポジトリに接続して、そのクライアント自体をプロビジョニングするために必要なソフトウェアを取得します。
Oracle VM VirtualBoxで"Oracle Solaris 11"仮想マシンを起動し、システムにログインします。
solaris console login: ouser Password: Oracle123
ログインしたら、この後の管理タスクのためにroot
ロールを取得しましょう。
ouser@solaris: ~$ su - Password: solaris11 root@solaris:~#
自動インストーラは、installadm
コマンドライン・インタフェースを使用します。x86ベース・システムをプロビジョニングできる非常に単純なサービスをセットアップしましょう。このラボでは、インストール・サービスの管理方法について説明しますが、システムのプロビジョニングは行いません。
root@solaris:~# installadm list There are no services configured on this server.
solaris
と呼ばれるクライアント・インストール・サービスを作成しましょう。
root@solaris:~# installadm create-service -n solaris Warning: Service svc:/network/dns/multicast:default is not online. Installation services will not be advertised via multicast DNS. Creating service from: pkg:/install-image/solaris-auto-install OK to use default image path: /export/auto_install/solaris? [y/N]: y DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 1/1 514/514 294.3/294.3 7.3M/s PHASE ITEMS Installing new actions 662/662 Updating package state database Done Updating image state Done Creating fast lookup database Done Reading search index Done Updating search index 1/1 Creating i386 service: solaris Image path: /export/auto_install/solaris Refreshing install services Warning: mDNS registry of service solaris could not be verified. Creating default-i386 alias No local DHCP configuration found. This service is the default alias for all PXE clients. If not already in place, the following should be added to the DHCP configuration: Boot server IP: 192.168.0.122 Boot file(s): bios clients (arch 00:00): default-i386/boot/grub/pxegrub2 uefi clients (arch 00:07): default-i386/boot/grub/grub2netx64.efi Note: determined more than one IP address configured for use with AI. Please ensure the above 'Boot server IP' is correct. Refreshing install services Warning: mDNS registry of service default-i386 could not be verified. root@solaris:~# installadm list Service Name Alias Of Status Arch Image Path ------------ -------- ------ ---- ---------- default-i386 solaris on i386 /export/auto_install/solaris solaris - on i386 /export/auto_install/solaris
ここで行っていることについて説明すると、サービスを作成した際に、install-image/solaris-auto-install
パッケージの内容を使用して、solaris
サービスに使用するブート・イメージを作成しました。このブート・イメージは、/export/auto_install/
に格納されています。これが初めて作成するサービスであるため、x86クライアント用のデフォルト・サービス(default-i386
)も作成し、このデフォルト・サービスに対してsolaris
を指定します。
このラボでは、次の出力に示されているように、すでにサーバー上にローカル・パッケージ・リポジトリがセットアップされています。
root@solaris:~# pkg publisher PUBLISHER TYPE STATUS P LOCATION solaris origin online F http://192.168.1.222/
クライアントをプロビジョニングするために、自動インストーラはデフォルトで、http://pkg.oracle.com
でホストされているパッケージ・リポジトリに接続します。このデフォルトを変更して、ローカル・パッケージ・リポジトリを指定する必要があります。
ローカル・パッケージ・リポジトリは、ネットワークに制限のあるデータセンター環境や、管理者がより厳格にソフトウェアのバージョン制御管理を実行する必要のあるデータセンター環境で使用されます。パッケージ・リポジトリ情報は、作成したサービス用のorig_default
インストール・マニフェストに含まれます。-m
オプションを使用すると、次のように、サービスに関連付けられているマニフェストのリストが表示されます。
root@solaris:~# installadm list -m Service/Manifest Name Status Criteria --------------------- ------ -------- default-i386 orig_default Default None solaris orig_default Default None
マニフェストを表示するために、次のように、installadm export
コマンドを使用して、出力を/root/manifest.txt
というファイルに渡すことができます。
root@solaris:~# installadm export -n default-i386 -m orig_default > /root/manifest.txt
定義したサービスは1つだけなので、default-i386
サービスを使用します。/root/manifest.txt
ファイルを編集します。次のセクションを見つけてください。
<source> <publisher name="solaris"> <origin name="http://pkg.oracle.com/solaris/release"/> </publisher> </source>
このセクションを、次のように編集します。
<source> <publisher name="solaris"> <origin name="http://192.168.1.222/solaris"/> </publisher> </source>
これで、この新しい構成によってデフォルトのマニフェストを次のように更新できます。
root@solaris:~# installadm update-manifest -n default-i386 -f /root/manifest.txt -m orig_default
今あるサービスは1つだけなので、ここでは、サービス名としてsolaris
ではなくdefault-i386
を指定します(将来のOracle Solaris 11リリースではこれが不要になる予定です)。
ネットワーク・インストールを開始する前に、クライアントのIPアドレス範囲、自動インストーラ・サービスの格納場所、およびPreboot Execution Environment(PXE)クライアント用のブート・イメージの格納場所を指定してDHCPサーバーを構成する必要があります。/etc/inet/dhcpd4.conf
を次のように編集してください。
# dhcpd.conf default-lease-time 9000; max-lease-time 86400; # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. authoritative; # arch option for PXEClient option arch code 93 = unsigned integer 16; # Set logging facility (accompanies setting in syslog.conf) log-facility local7; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.20 192.168.1.30; option broadcast-address 192.168.1.255; option routers 192.168.1.1; next-server 192.168.1.222; } class "PXEBoot" { match if (substring(option vendor-class-identifier, 0, 9) = "PXEClient"); if option arch = 00:00 { filename "default-i386/boot/grub/pxegrub2"; } else if option arch = 00:07 { filename "default-i386/boot/grub/grub2netx64.efi"; } }
では、DHCPサーバーを起動しましょう。サービスについては、少し後でより詳しく説明します。
root@solaris:~# svcadm enable dhcp/server:ipv4 root@solaris:~# svcs dhcp/server:ipv4 STATE STIME FMRI online 21:57:27 svc:/network/dhcp/server:ipv4
DHCPサーバーがオンラインになったので、以下の手順で、ネットワークからクライアントを起動します。
"Oracle Solaris 11 Client Install"仮想マシンを起動し、起動したことを確認して、ネットワークからインストールします。クライアント・システムのインストールが正常に完了したら、次の演習に移ることができます。
図18:ネットワークからのクライアントの起動
図19:自動インストーラの選択
図20:クライアントによるクライアント自体のプロビジョニングの開始
図21:クライアントのパッケージ・リポジトリへの接続
図22:クライアントによるリポジトリからのパッケージのダウンロードの開始
図23:クライアントによるクライアント自体のプロビジョニングの完了
ご存じですか Red Hat Enterprise Linuxは、Kickstartを使用して、ネットワーク経由で複数のクライアントをプロビジョニングします。管理者は、一連のキーワード要素を使用して、ディスク/パーティショニング、ソフトウェアの選択、ネットワーク、その他のシステム構成などを記述するテキストベースのKickstartファイルを作成します。Kickstartの一般的なアーキテクチャでは、PXEを使用してネットワークから起動するクライアントで、BOOTP/DHCPを使用してブート・イメージとKickstartファイルを使用可能にします。詳しくは、Red Hatのカスタマ・ポータルを参照してください。 自動インストーラは、クライアントがそれ自体をネットワーク経由でプロビジョニングする方法に関しては、Kickstartと同様のアーキテクチャを備えています。自動インストーラの1つのメリットは、ベアメタル・サーバーのインストールの一部としてOracle Solaris Zonesと呼ばれる仮想環境を作成して、それらを個別のネットワーク構成、ソフトウェア選択、および委任管理によってプロビジョニングできることです。 |
group/system/solaris-large-server
グループ・パッケージを使用して、ほとんどのサーバー環境に役立つソフトウェアをインストールします。最小化されたサーバー・インストール用のgroup/system/solaris-small-server
グループ・パッケージをインストールするように、マニフェストを修正します。solaris
サービスに追加します。ヒント:/usr/share/auto_install/sc_profiles/static_network.xml
にあるプロファイルを調べてください。solaris
サービスを修正します。Oracle Solaris 11では、Image Packaging Systemと呼ばれる新しいパッケージ・システムが使用されます。これは、ネットワークベースのパッケージ・システムです。クライアント・システムは、インストール元となるローカルまたはリモート接続されたパッケージ・リポジトリに接続します。各パッケージ・リポジトリには、複数のパブリッシャを格納できます。これらのパブリッシャは、ソフトウェアをインストールに使用できるようにすることを担当する個人またはグループです。
"Oracle Solaris 11"仮想マシンを使用し、pkg
コマンドによって、このシステムで構成されているパブリッシャを調べましょう。
root@solaris:~# pkg publisher PUBLISHER TYPE STATUS P LOCATION solaris origin online F http://192.168.1.222/
http://192.168.1.222
のアドレスによって構成されている1人のパブリッシャが存在します。これは、この仮想マシンのIPアドレスと一致します。つまり、これは、ローカル・パッケージ・リポジトリです。
gitと呼ばれる広く使用されているソース・コード管理ユーティリティを検索しましょう。pkg search
コマンドで-p
オプションを使用することにより、検索をパッケージ名に限定できます。
root@solaris:~# pkg search -p git PACKAGE PUBLISHER pkg:/developer/versioning/git@1.7.9.2-0.175.1.0.0.24.0 solaris
では、パッケージをインストールしましょう。
root@solaris:~# pkg install git Packages to install: 1 Create boot environment: No Create backup boot environment: No Services to change: 1 DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 1/1 334/334 8.5/8.5 933k/s PHASE ITEMS Installing new actions 496/496 Updating package state database Done Updating image state Done Creating fast lookup database Done root@solaris:~# which git /usr/bin/git
今回は、合計8.5MBサイズの1つのパッケージが正常にインストールされました。pkg contents
コマンドを使用してパッケージの内容を確認できます。
root@solaris:~# pkg contents git PATH usr usr/bin usr/bin/git usr/bin/git-cvsserver usr/bin/git-receive-pack usr/bin/git-shell usr/bin/git-upload-archive usr/bin/git-upload-pack usr/bin/gitk ... usr/share/man/man5/gittutorial-2.5 usr/share/man/man5/gittutorial.5 usr/share/man/man5/gitworkflows.5
また、pkg info
コマンドを使用すると、このパッケージに関するより詳しい情報が得られます。
root@solaris:~# pkg info git Name: developer/versioning/git Summary: git - Fast Version Control System Description: Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Category: Development/Source Code Management State: Installed Publisher: solaris Version: 1.7.9.2 Build Release: 5.11 Branch: 0.175.1.0.0.24.0 Packaging Date: September 4, 2012 05:17:20 PM Size: 22.89 MB FMRI: pkg://solaris/developer/versioning/git@1.7.9.2,5.11-0.175.1.0.0.24.0:20120904T171720Z
パッケージのアンインストールは、次のように、簡単に行えます。
root@solaris:~# pkg uninstall git Packages to remove: 1 Create boot environment: No Create backup boot environment: No Services to change: 1 PHASE ITEMS Removing old actions 497/497 Updating package state database Done Updating package cache 1/1 Updating image state Done Creating fast lookup database Done root@solaris:~# which git no git in /usr/sbin /usr/bin
pkg update
コマンドを使用して簡単に行えます。
root@solaris:~# pkg update Packages to remove: 1 Packages to update: 147 Mediators to change: 1 Create boot environment: Yes Create backup boot environment: No DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 148/148 5913/5913 285.6/285.6 PHASE ITEMS Removing old actions 921/921 Installing new actions 2245/2245 Updating modified actions 6967/6967 Updating package state database Done Updating package cache 148/148 Updating image state Done Creating fast lookup database Done A clone of solaris exists and has been updated and activated. On the next boot the Boot Environment solaris-1 will be mounted on '/'. Reboot when ready to switch to this updated BE. ---------------------------------------------------------------------- NOTE: Please review release notes posted at: http://www.oracle.com/pls/topic/lookup?ctx=E26502&id=SERNS ----------------------------------------------------------------------
リスト1
リスト1の出力結果から分かるとおり、solaris-1
という新しいブート環境(BE)が作成されています。これは、既存のファイル・システムがクローン化され、実行中のシステムではなくクローンに更新が適用されたことを意味します。リポジトリにある使用可能な更新に応じて、更新されたパッケージの表示数が異なる場合があります。
リスト2のように、beadm
コマンドを使用することによって、これらのブート環境を調べることができます。
root@solaris:~# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris N / 10.04M static 2013-07-23 12:08 solaris-1 R - 4.58G static 2013-08-02 02:19
リスト2
リスト2でいくつか分かることがあります。まず、現在、/
にマウントされているsolaris
というアクティブなブート環境があります。pkg update
コマンドの実行時に作成された新しいブート環境であるsolaris-1
は、アクティブ化されており、再起動後にデフォルトのブート環境になります。再起動時にsolaris-1
をアクティブ化しない場合は、beadm activate
コマンドを使用してブート環境を変更し、元に戻すことができます。
root@solaris:~# beadm activate solaris root@solaris:~# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris NR / 3.86G static 2013-07-23 12:08 solaris-1 - - 982.09M static 2013-08-02 02:19
また、ブート環境のサイズが異なることが分かります。この相違は、基盤となるZFSファイル・システムおよびそのCopy-On-Write機能の結果です。ZFSは、ファイル・システムの内容の完全なコピーではなく、2つのブート環境の差分だけを格納します。
この新しいブート環境の内容を確認する場合は、それをマウントするだけで、ファイル・システムを確認して、もう一度アンマウントすることができます。
root@solaris:~# beadm mount solaris-1 /mnt root@solaris:~# ls /mnt bin devices kernel net proc sbin usr boot etc lib nfs4 repository share var cdrom export media opt root system dev home mnt platform rpool tmp root@solaris:~# beadm unmount solaris-1
ブート環境は、システムを更新するときにだけ使用されるわけではありません。ベスト・プラクティスとして、管理上の変更を実施するときにブート環境を使用することもできます。たとえば、ネットワークにいくつかの高度な構成変更を加えるとします。変更前にブート環境を作成しておくと、問題が発生した場合に完全なフォールバック環境を使用できます。
新しいブート環境を作成するには、リスト3のように、beadm create
コマンドを使用します。
root@solaris:~# beadm create before-network-change root@solaris:~# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- before-network-change - - 73.0K static 2013-08-02 02:46 solaris NR / 3.86G static 2013-07-23 12:08 solaris-1 - - 982.09M static 2013-08-02 02:19
リスト3
リスト3から、新しいブート環境を作成するために使用される領域はごくわずかであることが分かります。
ご存じですか Red Hat Enterprise Linuxでは、パッケージの管理にRPMとyumが使用されます。RPMはソフトウェア・パッケージ化のための基本形式であり、yumによってこれらのパッケージのリモート・パッケージ・リポジトリからのインストールがサポートされます。また、yumは、スナップショット/ロールバック、デルタRPMパッケージ、パッケージ保護などの追加機能を提供する複数のプラグインをサポートする機能も提供します。詳しくは、Red Hatのカスタマ・ポータルを参照してください。 Red Hat Enterprise Linuxシステムの管理経験がある管理者であれば、Oracle Solaris 11でImaging Package Systemを使用すると簡単だと思います。パッケージ管理ユーティリティがリポジトリからのパッケージのインストールをサポートすることと、それらがソフトウェア依存性の自動チェック機能を提供することにより、どちらのオペレーティング・システムでもソフトウェアを簡単かつ迅速にインストールできます。 Imaging Package System独自のメリットの一つとして、パッケージ更新を実行できるZFSブート環境(ファイル・システムのスナップショットおよびクローン)を作成する機能があります。これにより、本番アプリケーションを動作させたままシステム更新を実行した後、計画的なメンテナンス時間がスケジュールされると、新しいブート環境を迅速に起動できます。更新後に問題が発生した場合は、古いブート環境をすぐに再起動して元に戻すことができます。この機能はyumでも提供されますが(LVMボリューム・マネージャまたはBtrfsファイル・システムを使用)、デフォルトでは構成されておらず、使いやすい管理インタフェースと十分に統合されてもいません。Image Packaging Systemでは、Oracle Solaris Zones仮想環境のソフトウェアを管理することもできます。これにより、確実に、パッケージの整合性が維持され、更新が並行して適用されます。 |
compress/gzip
パッケージを個別のパッケージ・リポジトリで再公開して、/usr/bin
にあるファイルだけを挿入してください。ヒント:pkgrepo
、pkgsend
、およびpkgrecv
コマンドを調べてください。Oracle Solaris 11のデフォルトのファイル・システムはZFSです。ZFSは、ソフトウェアRAID、暗号化、スナップショット/クローン機能といったさまざまなデータ・サービスを提供する、統合されたファイル・システムおよびボリューム・マネージャです。ZFSの基本的な長所の一つは、発見されにくいデータ破損を防ぎ、データの整合性を維持する機能です。
従来のファイル・システム(単一のデバイス上に存在するために複数のデバイスがある場合にはボリューム・マネージャを使用する必要がある)とは異なり、ZFSファイル・システムは、zpoolと呼ばれる仮想ストレージ・プールの上に構築されます。リスト4のように、zpool list
コマンドを使用することによって、システムで使用可能なzpoolを調べることができます。
root@solaris:~# zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 20G 15.1G 4.87G 75% 1.00x ONLINE -
リスト4
リスト4から分かるとおり、rpool
という1つのzpoolがあります。zpool status
コマンドを使用してこのzpoolの詳細を調べてみましょう。
root@solaris:~# zpool status rpool pool: rpool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c7t0d0 ONLINE 0 0 0 errors: No known data errors
リスト5
リスト5から、このzpoolが、/dev/dsk/c7t0d0
にあるディスクを表す仮想デバイスに接続されていることが分かります。Oracle Solarisでは、論理コントローラ数、物理バス・ターゲット数、ドライブ数、およびスライス(またはパーティション)数を示すcWtXdYsZ
というデバイス・ネーミング規則が使用されます。
使用する物理ストレージ・デバイスが分かっていれば、新しいzpoolを簡単に作成できます。今回は、format
コマンドを使用して使用可能なデバイスを調べた後に、zpool create
コマンドを使用して新しいzpoolを作成します。ここではまだディスクの選択に物理的な変更を加えず、それらのリストを表示するだけなので、echo
を使用してこのコマンドを結び付けます。
root@solaris:~# echo | format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c7t0d0 <ATA-VBOX HARDDISK-1.0-20.30GB> /pci@0,0/pci8086,2829@d/disk@0,0 1. c7t2d0 <ATA-VBOX HARDDISK-1.0-16.00GB> /pci@0,0/pci8086,2829@d/disk@2,0 Specify disk (enter its number): Specify disk (enter its number): root@solaris:~# zpool create mypool c7t2d0 root@solaris:~# zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT mypool 15.9G 152K 15.9G 0% 1.00x ONLINE - rpool 20G 15.1G 4.87G 75% 1.00x ONLINE - root@solaris:~# zpool status mypool pool: mypool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM mypool ONLINE 0 0 0 c7t2d0 ONLINE 0 0 0 errors: No known data errors
これらのストレージ・プールに含まれるデータセットのリストを表示するには、リスト6のように、zfs list
コマンドを使用します。
root@solaris:~# zfs list NAME USED AVAIL REFER MOUNTPOINT mypool 85K 15.6G 31K /mypool rpool 15.2G 4.50G 4.58M /rpool rpool/ROOT 3.72G 4.50G 31K legacy rpool/ROOT/before-network-changes 72K 4.50G 2.09G / rpool/ROOT/before-network-changes/var 1K 4.50G 122M /var rpool/ROOT/solaris 2.80G 4.50G 2.09G / rpool/ROOT/solaris-1 951M 4.50G 2.15G / rpool/ROOT/solaris-1/var 31.5M 4.50G 404M /var rpool/ROOT/solaris/var 503M 4.50G 122M /var rpool/VARSHARE 58K 4.50G 58K /var/share rpool/dump 792M 4.53G 768M - rpool/export 326M 4.50G 326M /export rpool/export/home 70K 4.50G 32K /export/home rpool/export/home/ouser 38K 4.50G 38K /export/home/ouser rpool/repository 9.33G 4.50G 9.33G /repository rpool/swap 1.03G 4.54G 1.00G -
リスト6
リスト6から分かるとおり、ここには、pool/{filesystem,volume,snapshot}
によって定義されるZFSデータセットがいくつかあります。新しく作成したzpool(mypool
)については、ZFSによってmypool
の上にファイル・システムが自動的に作成され、このファイル・システムが/mypool
にマウントされています。mypool
の下に別のファイル・システムを作成するには、リスト7のように、zfs create
コマンドを使用します。
root@solaris:~# zfs create mypool/mydataset root@solaris:~# zfs create mypool/dbdata root@solaris:~# zfs list -r mypool NAME USED AVAIL REFER MOUNTPOINT mypool 162K 15.6G 33K /mypool mypool/dbdata 31K 15.6G 31K /mypool/dbdata mypool/mydataset 31K 15.6G 31K /mypool/mydataset
リスト7
リスト7では、2つの追加のファイル・システム(mydataset
とdbdata
)を作成した後に、mypool
上のすべてのデータセットのリストを表示しています。
リスト8のように、mypool/mydataset
ファイル・システムに1GBのファイルを作成し、このファイルをクローン化して、ファイルのサイズを比較しましょう。
root@solaris:~# mkfile 1g /mypool/mydataset/foobar root@solaris:/mypool/mydataset# zfs list -r mypool NAME USED AVAIL REFER MOUNTPOINT mypool 1.00G 14.6G 33K /mypool mypool/dbdata 31K 14.6G 31K /mypool/dbdata mypool/mydataset 1.00G 14.6G 1.00G /mypool/mydataset root@solaris:/mypool/mydataset# zfs snapshot mypool/mydataset@today root@solaris:/mypool/mydataset# zfs clone mypool/mydataset@today \ mypool/newdataset root@solaris:/mypool/mydataset# zfs list -r mypool NAME USED AVAIL REFER MOUNTPOINT mypool 1.00G 14.6G 34K /mypool mypool/dbdata 31K 14.6G 31K /mypool/dbdata mypool/mydataset 1.00G 14.6G 1.00G /mypool/mydataset mypool/newdataset 18K 14.6G 1.00G /mypool/newdataset
リスト8
ZFSデータセットをクローン化するには、まず、zfs snapshot
コマンドを使用してデータセットのスナップショットを作成し、このスナップショットにtoday
という名前を付ける必要があります。ZFSスナップショットとは、ファイル・システムまたはボリュームの読取り専用のコピーのことです。スナップショットを作成したら、そのスナップショットをクローン化して新しいデータセットを作成します。ZFSクローンは、スナップショットからのみ作成できる書込み可能なファイル・システムまたはボリュームです。リスト8の出力結果から分かるとおり、mypool/newdataset
は、ZFSのCopy-On-Write機能により、わずか18Kの領域しか使用しません。
ご存じですか Red Hat Enterprise Linuxは、ext3、ext4、XFS、BTRFSといったさまざまなファイル・システムをサポートしています。ext3、ext4、およびXFSファイル・システムは、ディスクの割当て、ストライプ化、ミラー化、および論理ボリュームのサイズ変更のために使用される論理ボリューム・マネージャを必要とする従来のファイル・システムです。BTRFSは、統合されたボリューム管理機能を備えた新しいファイル・システムですが、テクノロジー・プレビュー版のみと考えられます。詳しくは、Red Hatのカスタマ・ポータルを参照してください。 ZFSが持つ2つの大きな差別化要因として、使いやすさとさまざまな統合データ・サービスがあります。コマンドライン・インタフェースは1組( zfs とzpool )だけですが、管理者は、ディスクをミラー化し、高度なソフトウェアRAID構成をセットアップし、圧縮や暗号化を有効化し、データセンター全体にわたってデータを移行することができます。ZFSは、その継続的整合性チェック機能や自動修復機能により、最新のファイル・システムをリードしています。 |
ZFSの最後の例として、暗号化されたデータセットを作成しましょう。暗号化は、データセットの作成時に有効にする必要があります。データセットの作成後に有効化することはできません。再び、zfs create
コマンドを使用し、暗号化プロパティをon
に設定します。
root@solaris:/mypool/mydataset# zfs create -o encryption=on \ mypool/myprivatedataset Enter passphrase for 'mypool/myprivatedataset': solaris11 Enter again: solaris11
これで、データセットが暗号化されました。リスト9のように、mypool
zpoolをエクスポートして別のシステムにインポートするとどうなるでしょうか。
root@solaris:~# zpool export mypool root@solaris:~# zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 20G 15.1G 4.87G 75% 1.00x ONLINE - root@solaris:~# zpool import mypool Enter passphrase for 'mypool/myprivatedataset': solaris11 root@solaris:~# zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT mypool 15.9G 1.00G 14.9G 6% 1.00x ONLINE - rpool 20G 15.1G 4.87G 75% 1.00x ONLINE -
リスト9
リスト9では、zpoolを同じシステムにインポートして戻していますが、データセットが使用可能になる前にパスワードの入力を求められていることに注意してください。
mypool
を破棄し、/dev/dsk/c7t2d0
ディスクを使用してrpool
をミラー化してみてください。/mypool/myprivatedata
にランダムなファイルを作成して、プールをエクスポートし、間違ったパスフレーズを使用してインポートしてください。作成したファイルは、どうなりましたか。Oracle Solaris 11は、ネットワークを構成するための一連の統合管理ツールを備えています。DHCPによる非常に単純な自動ネットワーク構成から、ブリッジング、リンク・アグリゲーション、仮想LAN、IPトンネリング、さまざまなネットワーク・ファブリック間のファイアウォールといったより複雑な構成までを、わずかな数のコマンドライン・インタフェースで実行できます。
Oracle Solaris 11のネットワーク・コマンドは、dladm
とipadm
によって、データリンク・レイヤー(レイヤー2)での管理とIPレイヤー(レイヤー3)での管理に分割されています。
注:互換性を確保するためにifconfig
が依然として使用可能になっていますが、Oracle Solaris 11ではこのコマンドを使用しないことを推奨します。
最初に、使用できる物理ネットワーク・インタフェースを調べましょう。dladm show-phys
コマンドを使用します。
root@solaris:~# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE net1 Ethernet unknown 0 unknown e1000g1 net0 Ethernet up 1000 full e1000g0
Oracle Solaris 11では、基盤となるネットワーク・デバイスの名前のエイリアシングされたリンク名を使用して抽象化します。ここでは、net1
リンクの静的IPアドレスを構成します。
まず、このリンクについて、IPv4とIPv6の両方を処理できるIPインタフェースを作成する必要があります(ただし、このハンズオン・ラボではIPv4アドレスについてのみ説明します)。ipadm create-ip
コマンドを使用する必要があります。
root@solaris:~# ipadm create-ip net1 root@solaris:~# ipadm show-if net1 IFNAME CLASS STATE ACTIVE OVER net1 ip down no --
IPインタフェースを作成したら、ipadm create-addr
コマンドを使用してこのインタフェースのアドレスを作成する必要があります。
root@solaris:~# ipadm create-addr -T static -a 192.168.2.111 net1/v4 root@solaris:~# ipadm show-addr net1/v4 ADDROBJ TYPE STATE ADDR net1/v4 static ok 192.168.2.111/24 root@solaris:~# ipadm show-if net1 IFNAME CLASS STATE ACTIVE OVER net1 ip ok yes --
DHCPによるネットワーク・インタフェースの構成は、静的IPアドレスを構成したときの手順と非常によく似ています。まず、net1
の現在のIPアドレスを削除し、次に、DHCPサーバーにアドレスの割当てを要求しましょう。
root@solaris:~# ipadm delete-addr net1/v4 root@solaris:~# ipadm create-addr -T dhcp net1/v4 root@solaris:~# ipadm show-addr net1/v4 ADDROBJ TYPE STATE ADDR net1/v4 dhcp ok 192.168.1.21/24 root@solaris:~# ipadm show-if net1 IFNAME CLASS STATE ACTIVE OVER net1 ip ok yes --
VNIC(仮想ネットワーク・インタフェース・コントローラ)は、見た目も動作も物理ネットワーク・インタフェースに似ています。VNICは、dladm create-vnic
コマンドを使用して、任意の物理ネットワーク・インタフェースを介して作成できます。
root@solaris:~# dladm create-vnic -l net1 vnic1 root@solaris:~# dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID vnic1 net1 1000 2:8:20:f7:a2:13 random 0
続いて、以前の手順と同じように、IPインタフェースを作成し、静的IPアドレスを割り当てます。
root@solaris:~# ipadm create-ip vnic1 root@solaris:~# ipadm create-addr -T static -a 192.168.2.112 vnic1/v4 root@solaris:~# ipadm show-addr vnic1/v4 ADDROBJ TYPE STATE ADDR vnic1/v4 static ok 192.168.2.112/24 root@solaris:~# ipadm show-if vnic1 IFNAME CLASS STATE ACTIVE OVER vnic1 ip ok yes --
Oracle Solaris 11では、DNS構成がサービス管理機能リポジトリに格納されるようになりました。サービス管理機能サービス(network/dns/client
)によって、従来は/etc/resolv.conf
にあった構成情報が管理され、system/name-service/switch
によって、従来は/etc/nsswitch.conf
にあった構成情報が管理されます。どちらの場合も、互換性のために、これらのファイルが保持されます。
DNS構成を構成するには、svccfg
を使用して構成プロパティを設定してから、svcadm refresh
を使用する必要があります。
root@solaris:~# svccfg -s svc:/network/dns/client setprop config/nameserver=net_address: '(192.168.1.1)' root@solaris:~# svcadm refresh network/dns/client root@solaris:~# svcadm enable network/dns/client root@solaris:~# svccfg -s system/name-service/switch setprop config/default = '"files dns"' root@solaris:~# svcadm refresh system/name-service/switch
このハンズオン・ラボでは、インターネットに接続しないプライベートOracle VM VirtualBoxネットワークを使用しているため、DNS構成については、あまり詳しく説明しません。
ご存じですか Red Hat Enterprise Linuxのネットワーク機能の大部分は、NetworkManagerを使用してグラフィカル・インタフェースで操作します。コマンドラインによる操作については、 /etc/sysconfig/network-scripts にあるいくつかのスクリプトとインタフェースを使用して実行されます。Red Hat Enterprise Linuxは、ブリッジング、ボンディング、vLANといったさまざまなネットワーク構成をサポートしています。詳しくは、Red Hatのカスタマ・ポータルを参照してください。Oracle Solaris 11は、統合されたネットワーク管理機能を備えています。わずかな数のコマンドライン・インタフェースを使用することで、管理者は、ブリッジング、vLAN、リンク・アグリゲーション、IPMP、IPトンネリング、InfiniBandといったレイヤー2とレイヤー3の両方のネットワーク機能を管理できます。仮想ネットワークの追加により、管理者は、単一のサーバーで複雑なネットワーク・トポロジをモデル化できるようになります。これにより、多くの場合、高価なネットワーク・ハードウェアを追加する必要がなくなります。 |
net0
とnet1
を構成してください。vnic1
)の最大帯域幅を10Mに設定してください。また、このVNICをゾーン(myzone
)に割り当てて、このリソースを設定することによる影響を確認してください。ヒント:まず、仮想化の演習を完了する必要がある場合があります。Oracle Solaris 11の最大の相違点の一つは、従来のroot
アカウントがデフォルトで存在しないことです。この変更はセキュリティ上の理由(複数ユーザー環境におけるアカウンタビリティの欠如)から実施されました。root
アカウントをデフォルトでロールとすることにより、管理者は、通常のユーザー・アカウントでログインした後に、追加の権限を取得します。
ロールは、実際のユーザーではなく機能的責任に対応する特別なアカウントです。各ユーザーは、ロールを持たないか、1つ以上のロールを持つことができます。ロールでは、プライマリ・ユーザーとしてシステムにログインできません。代わりに、ユーザーがロールを持つ必要があります。
では、root
が実際にロールであることを確認することから始めましょう。
root@solaris:~# userattr type root role
ここで、リスト10のように、ouser
に割り当てられているロールを確認することができます。
ouser@solaris:~$ roles ouser root
リスト10
リスト10から、ouser
にroot
ロールが割り当てられていることが分かります。これは、Oracle Solaris 11インストールの一部として作成される最初のユーザー・アカウントに関するデフォルトの動作です。
ロールベース・アクセス制御(RBAC)は、Oracle Solaris 11におけるユーザー管理の基盤です。権限は、たとえば、root
としてreboot
を実行するといったように、権利を与えられたユーザーとして実行可能なコマンドを実行するための特権です。
認証は、特定のハードウェアへのアクセスなどのように、セキュリティに影響する可能性のある種の動作をユーザーまたはロールが実行することを可能にする特権です。
権限プロファイルは、ユーザーまたはロールに割り当てることのできる管理機能の集合です。権限プロファイルは、認証、セキュリティ属性を持つコマンド、およびその他の権限プロファイルで構成できます。profiles
コマンドを使用すると、ユーザーに割り当てられているプロファイルのリストを表示できます。
root@solaris:~# profiles ouser System Administrator Audit Review Extended Accounting Flow Management acctadm .... CPU Power Management Basic Solaris User All
リスト11のように、profiles
コマンドに-p
および-l
オプションを使用することにより、プロファイルをもう少し詳しく調べて、各権限プロファイルに関連付けられている実行可能コマンドと、その他の特別な属性(ユーザー、グループIDなど)のリストを表示することができます。
root@solaris:~# profiles -p 'System Administrator' info name=System Administrator desc=Can perform most non-security administrative tasks profiles=Audit Review,Extended Accounting Flow Management,Extended Accounting Net Management,Extended Accounting Process Management,Extended Accounting Task Management,Printer Management,Cron Management,Device Management,File System Management,Log Management,Mail Management,Maintenance and Repair,Media Backup,Media Catalog,Media Restore,Name Service Management,Network Management,Object Access Management,Process Management,Project Management,RAD Management,Service Operator,Shadow Migration Monitor,Software Installation,System Configuration,User Management,ZFS Storage Management,Install Service Management help=RtSysAdmin.html
リスト11
リスト11から、System Administrator権限プロファイルに他のプロファイルがいくつか関連付けられていることが分かります。リスト12のように、Install Service Management権限プロファイルを調べましょう。
root@solaris:~# profiles -p 'Install Service Management' info name=Install Service Management desc=Install Service Administration auths=solaris.autoinstall.service profiles=Install Manifest Management,Install Profile Management,Install Client Management
リスト12
リスト12から、solaris.autoinstall.service
の認証とともに3つのプロファイルがこのプロファイルに関連付けられていることが分かります。
では次に、リスト13のように、Install Profile Managementプロファイルを調べましょう。
root@solaris:~# profiles -p 'Install Profile Management' info name=Install Profile Management desc=Install System Configuration Profile Administration auths=solaris.autoinstall.profile cmd=/usr/sbin/installadm
リスト13
このリスト13から、このプロファイルがinstalladm
コマンドに関連付けられていることが分かります。
ロール、プロファイル、および認証の基本を確認したので、testuser
という新しいユーザー・アカウントを作成しましょう。-m
オプションを使用して、/export/home
にマウントされるZFSデータセットを自動的に作成します。
root@solaris:~# useradd -m testuser root@solaris:~# id testuser uid=101(testuser) gid=10(staff)
このアカウントに適用されているロールとプロファイルを調べましょう。
root@solaris:~# roles testuser No roles root@solaris:~# profiles testuser testuser: Basic Solaris User All
最初は、基本的な権限プロファイルだけが、ユーザーまたはロールとしてコマンドを実行できる機能とともに割り当てられます。
リスト14のように、testuser
ユーザーとしてログインし、新しい自動インストーラ・サービスを追加するコマンドを実行してみましょう。
root@solaris:~# su - testuser Oracle Corporation SunOS 5.11 11.1 September 2012 -bash-4.1$ /usr/sbin/installadm create-service -n new-service Insufficient permissions to perform operation. Authorization <solaris.autoinstall.service> required to perform this operation.
リスト14
リスト14から分かるとおり、このユーザーには必要な認証がありません。ここで、これらを追加しましょう。usermod
コマンドを-P
オプションとともに使用して、Install Service Management権限プロファイルを追加してください。
-bash-4.1$ exit logout root@solaris:~# usermod -P +'Install Service Management' testuser root@solaris:~# profiles testuser testuser: Install Service Management Install Manifest Management Install Profile Management Install Client Management Basic Solaris User All
ここで、リスト15のように、アカウントにログインしなおして、もう一度コマンドの実行を試してみましょう。
root@solaris:~# su - testuser Oracle Corporation SunOS 5.11 11.1 September 2012 -bash-4.1$ /usr/sbin/installadm create-service -n new-service Insufficient permission to perform operation. euid required to be 0 to perform this operation.
リスト15
リスト15では、まだエラー・メッセージが表示されています。これは、特権をエスカレーションする必要があるためです。
-bash-4.1$ pfexec /usr/sbin/installadm create-service -n new-service Warning: Service svc:/network/dns/multicast:default is not online. Installation services will not be advertised via multicast DNS. Creating service from: pkg:/install-image/solaris-auto-install OK to use default image path: /export/auto_install/new-service? [y/N]: y DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 1/1 514/514 294.3/294.3 7.6M/s PHASE ITEMS Installing new actions 662/662 Updating package state database Done Updating image state Done Creating fast lookup database Done Reading search index Done Updating search index 1/1 Creating i386 service: new-service Image path: /export/auto_install/new-service Refreshing install services Warning: mDNS registry of service new-service could not be verified. -bash-4.1$ /usr/sbin/installadm list Service Name Alias Of Status Arch Image Path ------------ -------- ------ ---- ---------- default-i386 solaris on i386 /export/auto_install/solaris new-service - on i386 /export/auto_install/new-service solaris - on i386 /export/auto_install/solaris -bash-4.1$ exit logout root@solaris:~#
以上が、Oracle Solaris 11のごく基本的なユーザー管理(ロール、認証、権限プロファイルなど)の説明です。
ご存じですか Red Hat Enterprise Linuxは、SELinuxと呼ばれるLinuxカーネルの拡張機能を備えています。これにより、ほとんどのLinuxおよびUNIXオペレーティング・システムで使用できる"任意アクセス制御"アーキテクチャの一般的なユーザー、グループ、およびその他の特権に加えて、システムにおけるファイル、プロセス、ユーザー、およびアプリケーションのきめ細かな制御を可能にする強制アクセス制御(MAC)アーキテクチャが実装されます。SELinuxは、RBACのサポートと非常にきめ細かな管理方法も提供します。詳しくは、Red Hatのカスタマ・ポータルを参照してください。 Oracle Solaris Trusted Extensionsは、デバイス・アクセス、ファイル/ユーザー管理、ネットワーク、監査、およびその他のサービスを含むオペレーティング・システムのあらゆる側面に対応する強制アクセス制御モデルと特長とするセキュリティ拡張機能セットです。この拡張機能は、機密性ラベルをオブジェクトに追加することにより、これらのオブジェクト間に明示的な関係を確立することで実現されます。SELinuxは、より柔軟できめ細かな方法を提供しますが、一般に、オペレーティング・システムに関する非常に深い知識を必要とし、構成することが容易ではありません。 |
testuser
アカウントに認証を追加して、network/http:apache22
サービス管理機能(SMF)を有効化または無効化してください。 ヒント:solaris.smf.manage.*
の認証を確認し、サービス構成プロパティ内で適切な認証を追加します。Oracle Solaris 11では、サービス管理機能を使用して、システム上のアプリケーションとシステム・サービスを管理します。サービス管理機能により、管理者は、サービスを有効化/無効化することができ(サービスの依存関係を含む)、ハードウェアまたはソフトウェアに障害が発生したときにサービスを自動的に再起動することもできます。
サービス管理機能で管理されているサービスは、svcs
コマンドを使用して表示できます。
root@solaris:~# svcs STATE STIME FMRI legacy_run 2:06:12 lrc:/etc/rc2_d/S47pppd legacy_run 2:06:12 lrc:/etc/rc2_d/S81dodatadm_udaplt legacy_run 2:06:13 lrc:/etc/rc2_d/S89PRESERVE disabled 2:06:34 svc:/system/ocm:default disabled 14:05:08 svc:/platform/i86pc/acpihpd:default online 2:05:39 svc:/application/virtualbox/vboxmslnk:default online 2:05:39 svc:/application/virtualbox/vboxservice:default online 2:05:39 svc:/system/power:default online 2:05:39 svc:/network/shares:default online 2:05:40 svc:/application/cups/scheduler:default ... online 14:05:35 svc:/system/filesystem/local:default online 14:05:36 svc:/system/boot-loader-update:default online 14:05:36 svc:/system/cron:default online 14:05:36 svc:/system/filesystem/ufs/quota:default
svcs
コマンドにより、レガシー・サービス、一時的に無効化(次回再起動時まで)されているサービス、およびオンライン・サービスのすべてが表示されます。場合により、異なるポートでリスニングする複数のWebサービスのように、異なる基盤構成を持つ同じサービスの複数のインスタンスが表示されることがあります。
永続的に無効化されているサービスを含め、より多くのサービスが表示されるように、svcs
コマンドに-a
オプションを使用します。
root@solaris:~# svcs -a STATE STIME FMRI legacy_run 2:06:12 lrc:/etc/rc2_d/S47pppd legacy_run 2:06:12 lrc:/etc/rc2_d/S81dodatadm_udaplt legacy_run 2:06:13 lrc:/etc/rc2_d/S89PRESERVE disabled 2:05:55 svc:/application/cups/in-lpd:default disabled 2:05:55 svc:/network/rpc/rstat:default disabled 2:05:55 svc:/network/shell:default disabled 2:05:55 svc:/network/shell:kshell disabled 2:05:55 svc:/network/discard:dgram disabled 2:05:55 svc:/network/discard:stream disabled 2:05:55 svc:/network/telnet:default .... online 14:05:35 svc:/system/filesystem/local:default online 14:05:36 svc:/system/boot-loader-update:default online 14:05:36 svc:/system/cron:default online 14:05:36 svc:/system/filesystem/ufs/quota:default
ここでは、おもにApache Webサーバー・サービスについて説明します。
root@solaris:~# svcs -a | grep apache22 disabled 14:03:40 svc:/network/http:apache22
リスト16のように、-l
オプションを使用すると、このサービスに関するより詳しい情報が表示されます。
root@solaris:~# svcs -l apache22 fmri svc:/network/http:apache22 name Apache 2.2 HTTP server enabled false state disabled next_state none state_time August 2, 2013 02:03:40 PM UTC restarter svc:/system/svc/restarter:default manifest /lib/svc/manifest/network/http-apache22.xml dependency require_all/error svc:/milestone/network:default (online) dependency require_all/none svc:/system/filesystem/local:default (online) dependency optional_all/error svc:/system/filesystem/autofs:default (online)
リスト16
リスト16から、Apacheサービスが3つのサービスに依存しており、これらのサービスのすべてが現在オンラインであることが分かります。
リスト17のように、svcadm
コマンドを使用して、Apacheサービスを有効にしましょう。
root@solaris:~# svcadm enable apache22 root@solaris:~# svcs apache22 STATE STIME FMRI online 21:45:54 svc:/network/http:apache22
リスト17
リスト17から分かるとおり、このサービスは現在オンラインになっています。
リスト18のように、svcs -p
コマンドを使用することによって、このサービスがどのプロセスで起動したかを調べることができます。
root@solaris:~# svcs -p apache22 STATE STIME FMRI online 21:45:54 svc:/network/http:apache22 21:45:54 2707 httpd 21:45:55 2709 httpd 21:45:55 2710 httpd 21:45:55 2711 httpd 21:45:55 2712 httpd 21:45:55 2713 httpd
リスト18
ここで、リスト19のように、プロセスIDを停止して、何が起こるか確認しましょう。リスト18に示されているプロセスIDを使用する必要があります。
root@solaris:~# kill -9 2707 2709 2710 2711 2712 2713 root@solaris:~# svcs apache22 STATE STIME FMRI online 21:52:19 svc:/network/http:apache22 root@solaris:~# svcs -p apache22 STATE STIME FMRI online 21:52:19 svc:/network/http:apache22 21:52:19 2798 httpd 21:52:20 2799 httpd 21:52:20 2800 httpd 21:52:20 2801 httpd 21:52:20 2802 httpd 21:52:20 2803 httpd
リスト19
リスト19から分かるとおり、Apacheサービスはオンラインのままであり、このサービスが新しいhttpd
プロセスを自動的に再起動しています。このサービスをこれ以上オンラインにする必要がない場合は、単に無効にすることができます。
root@solaris:~# svcadm disable apache22 root@solaris:~# svcs apache22 STATE STIME FMRI disabled 21:54:54 svc:/network/http:apache22
各サービス管理機能サービスには、プロパティがいくつか関連付けられています。svcprop
コマンドを使用することによって、プロパティとその値にアクセスできます。
application/pkg/server
サービスを調べて、pkg
プロパティ・グループに含まれるすべてのプロパティを表示しましょう。
root@solaris:/usr/sbin# svcprop -p pkg application/pkg/server pkg/address net_address pkg/cfg_file astring "" pkg/content_root astring usr/share/lib/pkg pkg/debug astring "" pkg/file_root astring "" pkg/log_access astring none pkg/log_errors astring stderr pkg/mirror boolean false pkg/pkg_root astring / pkg/proxy_base astring "" pkg/socket_timeout count 60 pkg/sort_file_max_size astring "" pkg/ssl_cert_file astring "" pkg/ssl_dialog astring smf pkg/ssl_key_file astring "" pkg/threads count 60 pkg/writable_root astring "" pkg/inst_root astring /repository/ pkg/readonly boolean true pkg/port count 80
プロパティを設定する場合は、svccfg
という別のコマンドを使用する必要があります。このコマンドは、コマンドラインで使用するモードと対話型インタフェースで使用するモードの2つの異なるモードをサポートしています。ここでは、コマンドライン・インタフェースを使用して、pkg/port
プロパティを99に変更します。
root@solaris:/usr/sbin# svccfg -s pkg/server setprop pkg/port=99 root@solaris:/usr/sbin# svcprop -p pkg/port application/pkg/server 99
ご存じですか Red Hat Enterprise Linuxでは、システム・サービスを管理するために、 /etc/init/ に格納されるUpstart(initシステムのイベントベースの代替)と/etc/init.d に格納される従来のinitシステム自体を組み合わせて使用します。Upstartは、サービスが関連性を登録できるイベントを発生させます。サービスの一部の要件を満たすイベント(またはイベントの組合わせ)が発生すると、Upstartは、そのサービスを自動的に開始または停止します。Upstartは部分的にオペレーティング・システムと統合されている(サービスがUpstartの構成ファイルに移植されるという点で)だけであるにもかかわらず、Red Hatでは、将来のRed Hat Enterprise LinuxのリリースでUpstartをSystemdと置き換えることを予定しています。詳しくは、Red Hatのカスタマ・ポータルを参照してください。また、Upstartのクックブックも参照してください。 サービス管理機能は、サービスを順番に起動する従来のinitシステムと置き換わるという点ではUpstartと似ていますが、イベントベースではなく依存関係ベースです。どちらのソリューションも、最終的には、アプリケーションおよびシステム・サービスの信頼性を向上させるとともに、起動時間を短縮させます。その一方で、サービス管理機能は、サービスを開始、停止、および再開させるのに使いやすいことと、オペレーティング・システムの残りの部分との統合により、Upstartをリードしています。サービス管理機能は、バックエンド・サービス構成ストレージの機能も提供します。 |
application/pkg/server
サービスを使用して、実行済みの管理カスタマイズを検出できるかどうかを確認してください。ヒント:2つのカスタマイズが実施されているはずです。application/pkg/server
サービスを使用して、サービスがオンライン状態からメンテナンス状態または無効状態に移行したときにトリガーされる電子メール通知をセットアップしてください。Oracle Solaris Zonesテクノロジーにより、Oracle Solaris 11ではオーバーヘッドの少ない仮想化機能が実装されています。このテクノロジーにより、オペレーティング・システムの単一のインスタンスにおいて、分離された異なるアプリケーション環境を作成できます。このため、複数のシステムおよび複数の物理サーバーにわたって時間とリソースを管理するために必要となる管理上のオーバーヘッドが大幅に削減されます。各Oracle Solaris Zoneには、CPU、メモリ、ネットワーク、ストレージなどのリソースを割り当てることができる完全なリソース制御環境が含まれます。
まずは、zonecfg
コマンドを使用して、単純なテスト・ゾーンを作成しましょう。
root@solaris:~# zonecfg -z testzone Use 'create' to begin configuring a new zone. zonecfg:testzone> create create: Using system default template 'SYSdefault' zonecfg:testzone> set zonepath=/zones/testzone zonecfg:testzone> set autoboot=true zonecfg:testzone> verify zonecfg:testzone> commit zonecfg:testzone> exit
ここで、リスト20のように、zoneadm
コマンドを使用してすべての構成済みゾーンを表示することによって、作成されたものを調べましょう。
root@solaris:~# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - testzone configured /zones/testzone solaris excl
リスト20
リスト20から分かるとおり、目的のtestzone
が作成されています。これは、solaris
タイプのゾーンであり、完全に排他的なIPネットワーク・スタックを備えています。デフォルトでは、すべてのゾーンが、ユーザーにネットワーク・デバイスを自動的に提供する自動VNICを備えるように構成されます。この自動VNICは、ゾーンの起動時に自動的に作成され、ゾーンの停止時に自動的に破棄されます。
ゾーンを構成したら、そのゾーンをインストールする必要があります。
root@solaris:~# zoneadm -z testzone install The following ZFS file system(s) have been created: rpool/zones rpool/zones/testzone Progress being logged to /var/log/zones/zoneadm.20130804T215019Z.testzone.install Image: Preparing at /zones/testzone/root. AI Manifest: /tmp/manifest.xml.zwaW.h SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml Zonename: testzone Installation: Starting ... Creating IPS image Startup linked: 1/1 done Installing packages from: solaris origin: http://192.168.1.222/ DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 183/183 33556/33556 222.2/222.2 224k/s PHASE ITEMS Installing new actions 46825/46825 Updating package state database Done Updating image state Done Creating fast lookup database Done Installation: Succeeded Note: Man pages can be obtained by installing pkg:/system/manual done. Done: Installation completed in 1784.947 seconds. Next Steps: Boot the zone, then log into the zone console (zlogin -C) to complete the configuration process. Log saved in non-global zone as /zones/testzone/root/var/log/zones/zoneadm.20130804T215019Z.testzone.install
作成したゾーンは、それ自体をImage Packaging Systemパッケージ・リポジトリからインストールします。
ここで、ゾーンのステータスを確認し、作成された新しいZFSデータセットを表示できます。
root@solaris:~# zoneadm list -iv ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - testzone installed /zones/testzone solaris excl root@solaris:~# zfs list | grep zones rpool/zones 415M 3.61G 32K /zones rpool/zones/testzone 415M 3.61G 32K /zones/testzone rpool/zones/testzone/rpool 415M 3.61G 31K /rpool rpool/zones/testzone/rpool/ROOT 415M 3.61G 31K legacy rpool/zones/testzone/rpool/ROOT/solaris 415M 3.61G 390M /zones/testzone/root rpool/zones/testzone/rpool/ROOT/solaris/var 24.8M 3.61G 24.2M /zones/testzone/root/var rpool/zones/testzone/rpool/VARSHARE 31K 3.61G 31K /var/share rpool/zones/testzone/rpool/export 62K 3.61G 31K /export rpool/zones/testzone/rpool/export/home 31K 3.61G 31K /export/home
testzone
を稼働させる最後の手順は起動です。
root@solaris:~# zoneadm -z testzone boot root@solaris:~# zoneadm list -v ID NAME STATUS PATH BRAND IP 0 global running / solaris shared 1 testzone running /zones/testzone solaris excl
ゾーンにログインできます。
root@solaris:~# zlogin -C testzone
コンソールにログインすると、このゾーンの構成手順を順番に示すテキストベースの対話型システム構成ツールのプロンプトが表示されます。構成として以下の値を入力してください。
ホスト名:testzone
ネットワーク:Automatic
root
パスワード:solaris11
ouser
パスワード:Oracle123
ゾーンの構成の初期設定が正常に完了したら、リスト21のように、ログインしてゾーン環境を確認できます。
root@testzone:~# uname -a SunOS testzone 5.11 11.1 i86pc i386 i86pc root@testzone:~# ipadm show-addr show-addr ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1/8 net0/v4 dhcp ok 192.168.1.22/24 lo0/v6 static ok ::1/128 net0/v6 addrconf ok fe80::8:20ff:fece:1bb0/10 root@testzone:~# dladm show-link LINK CLASS MTU STATE OVER net0 vnic 1500 up ? root@testzone:~# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 431M 3.59G 31K /rpool rpool/ROOT 431M 3.59G 31K legacy rpool/ROOT/solaris 431M 3.59G 404M / rpool/ROOT/solaris/var 24.9M 3.59G 24.3M /var rpool/VARSHARE 39K 3.59G 39K /var/share rpool/export 96.5K 3.59G 32K /export rpool/export/home 64.5K 3.59G 32K /export/home rpool/export/home/ouser 32.5K 3.59G 32.5K /export/home/ouser
リスト21
リスト21から、いくつかの相違点が分かります。まず、ゾーンが使用できる排他的IPスタックがあります。このIPスタックはネットワーク仮想化を利用しています。VNICもゾーンのセットアップ時に自動的に作成されています。また、ゾーン内はいくつかのZFSデータセットのみが公開されていることも分かります。これは、大域ゾーンで使用可能なデータセットと異なる点です。
ここで、リスト22のように、ゾーンからログアウトし、「~.
」と入力してコンソールを切断してから、大域ゾーンに作成されているVNICを調べましょう。
root@testzone:~# exit logout testzone console login: ~. [Connection to zone 'testzone' console closed] root@solaris:~# dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID vnic1 net1 1000 2:8:20:f7:a2:13 random 0 testzone/net0 net0 1000 2:8:20:fd:6f:e7 random 0
リスト22
リスト22から、物理インタフェースのnet0
を介してtestzone/net0
という新しいVNICが作成されていることが分かります。
ご存じですか Red Hat Enterprise Linuxでは、主としてKVM(カーネルベースの仮想化)が使用されます。これにより、管理者は、変更のないLinuxおよびWindowsベースの環境を実行できます。KVMハイパーバイザは、 libvirt APIとvirt-manager やvirtsh などのツールを使用して管理されます。KVMは、さまざまな仮想デバイス、エミュレーションされたデバイス、および準仮想化されたデバイスと、物理デバイスへの直接アクセスをサポートします。詳しくは、Red Hatのカスタマ・ポータルを参照してください。Oracle Solaris Zonesは、オペレーティング・システムの中核部分と統合された、オーバーヘッドのもっとも少ない仮想化ソリューションを提供することで、業界でもよく知られています。Oracle Solaris Zonesは、迅速に作成およびクローン化することができます。また、クラウドにおけるマルチテナントのための非常に安全な分離環境を提供します。 |
ゾーンが正常に作成されたので、ゾーンを迅速にクローン化しましょう。まず、既存のtestzone
を停止する必要があります。
root@solaris:~# zoneadm -z testzone shutdown
newzone
という新しいゾーンを作成しましょう。
root@solaris:~# zonecfg -z newzone Use 'create' to begin configuring a new zone. zonecfg:newzone> create create: Using system default template 'SYSdefault' zonecfg:newzone> set zonepath=/zones/newzone zonecfg:newzone> verify zonecfg:newzone> commit zonecfg:newzone> exit
最後に、リスト23のように、zoneadm clone
コマンドを使用して既存のtestzone
をクローン化します。
root@solaris:~# zoneadm -z newzone clone testzone The following ZFS file system(s) have been created: rpool/zones/newzone Progress being logged to /var/log/zones/zoneadm.20130804T225815Z.newzone.clone Log saved in non-global zone as /zones/newzone/root/var/log/zones/zoneadm.20130804T25815Z.newzone.clone root@solaris:~# zoneadm list -iv ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - testzone installed /zones/testzone solaris excl - newzone installed /zones/newzone solaris excl
リスト23
リスト23から、元のtestzone
のインストールにかかった時間に比べて、newzone
が迅速に作成されることが分かります。ここで、以前の手順と同じように、この新しいゾーンを起動して、システム構成手順を完了できます。
myzone
)を作成し、追加のシステム・プロファイルを使用してnewzone
をクローン化してください。ヒント:sysconfig
コマンドライン・インタフェースを使用して、管理者独自のプロファイルを作成できます。myzone
を構成してください。myzone
を構成してください。これで、このハンズオン・ラボは完了です。セクションの大半を学習し、いくつかの追加タスクに自信を持って取り組んでいただければ幸いです。
以下に、Oracle Solaris 11の管理に関する優れた参考資料のリストを示します。
Glynn Fosterは、Oracle SolarisのPrincipal Product Managerであり、プロビジョニングやオペレーティング・システムのソフトウェア・ライフ・サイクル(クラウド環境におけるそれらを含む)に関連するテクノロジーに取り組んでいます。
リビジョン1.0、2013年11月27日 |