Solaris 11 x64 VPS
Top / サポート情報 / マニュアル / 旧サービス / Solaris 11 x64 VPS / Solaris VPS設定方法一覧(逆引き)

Solaris VPS設定方法一覧(逆引き)

Solaris 11 x64 VPS/クラウド 設定方法一覧(逆引き)

Oracle Solaris 11設定方法の逆引き資料です。Solaris 11 x64 VPS/クラウドの運用にお役立てください。

システム構成

Oracle Solaris 11より、一般的なシステム設定は、従来のファイルベースの設定方法から、Service Management Facility(SMF)による設定方法に変更されています。

SMFを利用することにより、管理しやすくなり、またシステムアップデートの際に設定が維持されることが保証されるようになります。

ノード名(ホスト名)を変更する

# svccfg -s svc:/system/identity:node setprop config/nodename = myhost
# svcadm refresh svc:/system/identity:node
# svcadm restart svc:/system/identity:node

※ hostsファイルは手動で編集する必要があります。

タイムゾーンを変更する

初期出荷時は日本(Japan)に設定されています。変更が必要な場合のみ、以下の操作で変更してください。

# svccfg -s timezone:default setprop timezone/localtime = astring: Japan
# svcadm refresh timezone:default

ブート環境(Boot Environment: BE)

ブート環境(Boot Environment: BE)は、ZFSが提供するスナップショットとクローンを利用した、それぞれが独立して起動可能なOSインスタンスです。

システムメンテナンスの前にBEを作成しておくことにより、問題が発生した場合でも、古いBEで起動することによってメンテナンス前の状態に戻ることができます。
サーバを本番環境で運用する場合は特に、メンテナンス(ソフトウェア更新や重要な設定変更等)の前に、現在のBEを作成しておくことをお勧めします。

BEはオーバヘッドが少なく、短時間で作成することができます。

BEの作成

# beadm create solaris-20130101

BEの有効化

# beadm activate solaris-20130101

BEの一覧を表示

# beadm list
BE                    Active Mountpoint Space   Policy Created
--                    ------ ---------- -----   ------ -------
FactoryReset          -      -          57.0K   static 2013-01-01 00:00
solaris               NR     /          474.03M static 2013-01-01 00:00
  • Active フィールドについて
    • N: 現在適用されているBEです。
    • R: 次回再起動時に適用されるBEです。

BEの削除

BEを削除すると、そのBEに関連するZFSスナップショットもすべて削除されます。また、この操作は取り消しができません。十分ご注意ください。

# beadm destroy solaris-20130101

pkgコマンドの使い方

Oracle Solaris 11 は、自動的な依存チェックができるネットワーク化されたパッケージ管理機構(Image Packaging System: IPS)を備えています。

パッケージ「web/server/apache-22」をインストールする

# pkg install -v web/server/apache-22

パッケージ「web/server/apache-22」をアンインストールする

# pkg uninstall -v apache-22

システムにインストールされたすべてのパッケージを表示する

# pkg list

インストール済みパッケージと、入手可能なパッケージの最新バージョンをすべて表示する

# pkg list -a

入手可能なパッケージの中に、「apache」が含まれるものを表示する

# pkg list -a | grep apache

未インストールパッケージ「web/server/apache-22」の詳細情報を表示する

# pkg info -r apache-22

未インストールパッケージ「web/server/apache-22」の内容を表示する

# pkg contents -r apache-22

パブリッシャーから「httpd」というファイルが含まれるすべてのパッケージを検索する

# pkg search -r httpd

「library/libxml2」に依存しているすべてのインストール済みパッケージを検索する

# pkg search -l -o pkg.name 'depend::library/libxml2'

現在設定されているパッケージのパブリッシャーを表示する

# pkg publisher

アプリケーションのバージョンを選択する

同一のアプリケーションで複数のバージョンをインストールしている場合、アプリケーションによってはシステムが実装するバージョンを選択することができます。
ここでは、PHPを例にご紹介します。

選択可能なバージョンを表示する
# pkg mediator -a php
MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
php      system    5.3     system
php      system    5.2     system
現在選択されているバージョンを表示する
# pkg mediator php
MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
php      local     5.3     system
システムがデフォルトで利用するバージョンを変更する
# pkg set-mediator -V 5.2 php

ファイルシステム(ZFS)

ZFSはOracle Solaris 11で標準の根幹的なファイルシステムです。ZFSは、統合されたボリューム管理を持ち、高レベルのデータ完全性を保ちます。またデータ重複排除やRAID、データ暗号化のような多種多様なデータサービスも含んでいます。

ZFSファイルシステムの一覧を表示する

# zfs list

rpool/exportに新しいZFSファイルシステムを作成する

# zfs create rpool/export/zfs-test

rpool/export 以下のスナップショットを再帰的に作成する

# zfs snapshot -r rpool/export@20130101

rpool/export 以下のスナップショット一覧を表示する

# zfs list -t snapshot -r rpool/export

rpool/export/zfs-test をロールバックする

# zfs rollback rpool/export/zfs-test@20130101

スナップショットと現在の状態を比較する

# zfs diff rpool/export/zfs-test@20130101 rpool/export/zfs-test

スナップショットを参照する

スナップショットは、該当ファイルシステム/.zfs/snapshot/以下に作成されます。
.zfsディレクトリはデフォルトでは不可視のため、ls -aコマンドでは表示されませんが、ディレクトリを直接指定することにより表示が可能です。

# ls -l /export/zfs-test/.zfs/snapshot/20130101

※スナップショットファイルは読取専用で参照できます。

スナップショットディレクトリを可視化する

デフォルトで不可視の.zfsディレクトリを可視化し、ls -aコマンドなどで表示可能にします。

# zfs set snapdir=visible rpool/export/zfs-test

auto-snapshotの対象から外す

auto-snapshotとは、ZFSファイルシステムのスナップショットを自動的に作成する機能です。
Solaris 11 x64 VPS/クラウドでは、VPS上のすべてのZFSファイルシステムを対象にデフォルトで有効にしておりますが、以下の操作で特定のファイルシステムをauto-snapshotの対象から外すことができます。必要な場合のみ参考としてご利用ください。

■ rpool/export/zfs-testがauto-snapshotの対象になっているかを確認する

# zfs get com.sun:auto-snapshot rpool/export/zfs-test
NAME                    PROPERTY               VALUE  SOURCE
rpool/export/zfs-test   com.sun:auto-snapshot  true   inherited from $globalzone

※ VALUEが「true」になっていれば、auto-snapshotの対象になっています。

■ rpool/export/zfs-testをauto-snapshotの対象から外す

# zfs set com.sun:auto-snapshot=false rpool/export/zfs-test

■ rpool/export/zfs-testをauto-snapshotの対象にする

# zfs set com.sun:auto-snapshot=true rpool/export/zfs-test

スナップショットからクローンファイルシステムを作成する

読取専用であるスナップショットを複製し、読取・書込が可能なファイルシステムを作成します。

# zfs clone rpool/export/zfs-test@20130101 rpool/export/clone-test

クローンファイルシステムとマスタファイルシステムの依存関係を逆転する

クローンファイルシステムがクローン元であるスナップショットに依存しないようにします。

# zfs promote rpool/export/clone-test

※ 依存関係が逆転し、クローンがマスタファイルシステムに、マスタであったファイルシステムがクローンになります。

ファイルシステムの共有

ここでは、NFS / CIFSによるファイルシステム共有の設定例をご案内します。
「Solaris 11 x64 VPS/クラウド」を複数ご契約いただき、うち1台にプライベートアドレスを割り当てファイルサーバとしてご利用いただく場合などに、参考としてご利用ください。
インターネットに対し、直接ファイルシステムを共有・公開するのはセキュリティ上非常に危険です。運用される場合は、適切なセキュリティ設定・管理をお願いいたします。

■ NFSによりファイルシステムを共有する

# zfs create zpool/fs1
# zfs set share=name=fs1,path=/rpool/fs1,prot=nfs rpool/fs1
# zfs set sharenfs=on rpool/fs1

■ CIFSによりファイルシステムを共有する 

# pkg install service/filesystem/smb
# svcadm enable -r smb/server
# echo "other password required pam_smb_passwd.so.1 nowarn" >> /etc/pam.conf
# smbadm enable-user hoge
# zfs set share=name=sh1,path=/rpool/fs1,prot=smb rpool/fs1
# zfs set sharesmb=on rpool/fs1

デーモン(サービス)の起動や停止(SMF)

Solaris 11では、デーモン(サービス)の起動や停止は「サービス管理機構(Service Management Facility: SMF)」にて行います。
SMFは、エラー等で停止した場合の自動復旧機能を含む、自動的なサービス管理のフレームワークです。すべてのサービスインスタンスは、Fault Management Resource Indicator (FMRI)で定義されます。

すべてのサービスを表示する(無効なサービスも含む)

# svcs -a

サービス「system/system-log」に関する詳細な情報を表示する

# svcs -l system/system-log

サービス「network/netcfg」に関連しているプロセスを表示する

# svcs -p network/netcfg

有効にしたサービス自身や依存するサービスで起動していないものを表示する

# svcs -xv

サービス「network/dns/client」を有効にする

# svcadm enable network/dns/client

サービス「network/dns/client」を略した FMRI で再起動する

# svcadm restart dns/client

サービス「/network/dns/client」を無効にする

# svcadm disable /network/dns/client

起動に失敗してしまったサービス「network/http:apache22」を再起動する

有効にする操作をしたが、設定の誤りなどによりメンテナンス状態になってしまったサービスを起動し直します。

# svcadm clear network/http:apache22

SMF 構成リポジトリにある「network/http:apache22」のすべてのプロパティとその値を表示する

# svcprop network/http:apache22

SMF 構成リポジトリにある「network/http:apache22」の httpd/enable_64bitプロパティを対話的に表示する

# svccfg
svc:> select network/http:apache22
svc:/network/http:apache22> listprop httpd/enable_64bit
httpd/enable_64bit boolean     false
svc:/network/http:apache22> exit

SMF 構成リポジトリにある「network/http:apache22」の httpd/server_typeプロパティを表示する

# svccfg -s network/http:apache22 listprop httpd/server_type
httpd/server_type astring     prefork

サービス「network/http:apache22」の動作モードを、64bit/Worker MPM に変更する

# svccfg -s /network/http:apache22 setprop httpd/enable_64bit = true
# svccfg -s /network/http:apache22 setprop httpd/server_type = worker
# svcadm refresh /network/http:apache22
# svcadm restart /network/http:apache22
  • ご注意
    • モジュール版PHP(mod_php)をご利用の場合、Apacheの動作モードが 64bit/Worker MPM では動作しません。その場合は、32bit/Prefork MPMでご利用ください。

すべてのサービスに対し、オンラインからメンテナンス状態へと移行してしまった際のメール通知を構成する

簡易的な監視にご利用いただけます。
この例では、起動中のサービスが何らかの理由で再起動し、その後正常に起動できない場合に mailto:で指定したメールアドレス宛に通知を行います。

# svccfg setnotify -g from-online,to-maintenance mailto:hoge@example.com

SMF 構成リポジトリにおいてサービス「name-service/switch」になされたすべての構成変更を表示する

# svccfg -s name-service/switch listcust -L
Private CloudPrivate Cloud
StorageStorage
NetworkNetwork