2013年12月31日火曜日

Oracle Linux 6.5 の UEK R3 と YUMグループについて

Oracle Linux 6.5 インストール中のパッケージ選択画面で、
「UEK3 kernel repo」には UEK R3 自体のパッケージが見当たりません。




しかし、このグループを選択すると実際にはUEK R3がインストールされます。
[root@oel65-base-64 ~]# uname -r
3.8.13-16.2.1.el6uek.x86_64

ためしに、「UEK3 kernel repo」グループの情報を見てみます。
/etc/yum.repos.d/dvd.repo ファイルに下記を追記して「yum groupinfo」コマンドを実行します。

/etc/yum.repos.d/dvd.repo ファイルの記載例
[DVD-UEK3]
name=DVD-UEK3
baseurl=file:///media/UEK3
gpgkey=file:///media/RPM-GPG-KEY
gpgcheck=1
enabled=1

見てみると、
「Mandatory Packages」(必須パッケージ)というカテゴリの中に「kernel-uek」がありました。
[root@oel65-base-64 ~]# mount /dev/cdrom /media/
[root@oel65-base-64 ~]# yum groupinfo "UEK3 kernel repo"
Loaded plugins: security
Setting up Group Process

Group: UEK3 kernel repo
 Description: UEK3 kernel repo.
 Mandatory Packages:
   kernel-uek
 Default Packages:
   dtrace-modules-3.8.13-16.2.1.el6uek
   kernel-uek-doc
   kernel-uek-firmware
   libdtrace-ctf
   uname26
 Optional Packages:
   dtrace-modules-3.8.13-16.2.1.el6uek-headers
   dtrace-modules-3.8.13-16.2.1.el6uek-provider-headers
   kernel-uek-debug
   kernel-uek-debug-devel
   kernel-uek-devel
   libdtrace-ctf-devel

オプションで、「-v」を付けるとRPMのバージョンなども表示されるようになります。
[root@oel65-base-64 ~]# yum groupinfo "UEK3 kernel repo" -v
Not loading "rhnplugin" plugin, as it is disabled
Loading "security" plugin
Config time: 0.025
Yum Version: 3.2.29
Setting up Group Process
rpmdb time: 0.000
group time: 0.589

Group: UEK3 kernel repo
 Group-Id: uek3-kernel-repo
Setting up Package Sacks
pkgsack time: 0.024
 Description: UEK3 kernel repo.
 Mandatory Packages:
   kernel-uek-3.8.13-16.2.1.el6uek.x86_64                                  @anaconda-UEK3/6.5
 Default Packages:
   dtrace-modules-3.8.13-16.2.1.el6uek-0.4.1-3.el6.x86_64                  @anaconda-UEK3/6.5
   kernel-uek-doc-3.8.13-16.2.1.el6uek.noarch                              @anaconda-UEK3/6.5
   kernel-uek-firmware-3.8.13-16.2.1.el6uek.noarch                         @anaconda-UEK3/6.5
   libdtrace-ctf-0.4.0-1.x86_64                                            @anaconda-UEK3/6.5
   uname26-1.0-1.el6.x86_64                                                @anaconda-UEK3/6.5
 Optional Packages:
   dtrace-modules-3.8.13-16.2.1.el6uek-headers-0.4.1-3.el6.x86_64          DVD-UEK3
   dtrace-modules-3.8.13-16.2.1.el6uek-provider-headers-0.4.1-3.el6.x86_64 DVD-UEK3
   kernel-uek-debug-3.8.13-16.2.1.el6uek.x86_64                            DVD-UEK3
   kernel-uek-debug-devel-3.8.13-16.2.1.el6uek.x86_64                      DVD-UEK3
   kernel-uek-devel-3.8.13-16.2.1.el6uek.x86_64                            @anaconda-UEK3/6.5
   libdtrace-ctf-devel-0.4.0-1.x86_64                                      DVD-UEK3

UEK R3 のグループに限らない話ですが、
OSインストール中のパッケージ選択画面では 必須パッケージは表示されないようです。

おまけ

ついでに、OL6 で DVDの中をYUMで見に行くときの設定例 を書いておこうと思います。
DVDのマウントポイントは /media にしています。
[root@oel65-base-64 setup]# cat /etc/yum.repos.d/dvd.repo
[DVD-Server]
name=DVD-Server
baseurl=file:///media/Server
gpgkey=file:///media/RPM-GPG-KEY
gpgcheck=1
enabled=1
[DVD-HighAvailability]
name=DVD-HighAvailability
baseurl=file:///media/HighAvailability
gpgkey=file:///media/RPM-GPG-KEY
gpgcheck=1
enabled=1
[DVD-LoadBalancer]
name=DVD-LoadBalancer
baseurl=file:///media/LoadBalancer
gpgkey=file:///media/RPM-GPG-KEY
gpgcheck=1
enabled=1
[DVD-ResilientStorage]
name=DVD-ResilientStorage
baseurl=file:///media/ResilientStorage
gpgkey=file:///media/RPM-GPG-KEY
gpgcheck=1
enabled=1
[DVD-ScalableFileSystem]
name=DVD-ScalableFileSystem
baseurl=file:///media/ScalableFileSystem
gpgkey=file:///media/RPM-GPG-KEY
gpgcheck=1
enabled=1
[DVD-UEK3]
name=DVD-UEK3
baseurl=file:///media/UEK3
gpgkey=file:///media/RPM-GPG-KEY
gpgcheck=1
enabled=1

以上、UEK R3 のYUMグループの話でした。

2013年12月30日月曜日

Oracle Linux 6.5 で インストール中のスクリーンショットを取得する。

新しい機能というわけではないですが、
Oracle Linux のインストール中にプリントスクリーンのキーを押すと、
スクリーンショットが取得できます。

最近リリースされた
Oracle Linux 6.5 をインストールするついでに取得してみました。

取得した瞬間に、下記のようなメッセージが表示され、画像はPNG形式で保存されます。
「A screenshot named 'screenshot-NNNN.png' has been saved.」

ちなみにこの画面は、
スクリーンショットを保存したメッセージが出たときに
さらにプリントスクリーンを押して取得しました。



たとえば、物理サーバへの OSインストールするときの
手順書作成や、エビデンス(作業ログ)の取得などに使えるのではないかと思います。
※手順書作成用のキャプチャ取得はVirual Box とかでもできますが、なにか事情があるときに・・・

ちなみに Oracle Linux 6.5 ~ の 「UEK3 Kernel repo」 を選択して
スクリーンショットを取得してみました。
ちなみに、画面には UEK(Unbreakable Enterprise Kernel) R3 自体が見当たりませんが、
このグループを選択すると実際には UEK R3 がインストールされます。



処理の途中で取得することもできます。




スクリーンショットのファイルは
/root/anaconda-screenshots/ ディレクトリに保存され、
インストールが完了後に採取することができます。
anaconda インストーラ実行中のスクリーンショットということで
anaconda-screenshots ディレクトリなのでしょう。
[root@oel65-base-64 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)
[root@oel65-base-64 ~]# uname -r
3.8.13-16.2.1.el6uek.x86_64  ★「3.8.13~」 なので UEK R3です。
[root@oel65-base-64 ~]# ls /root/anaconda-screenshots/
screenshot-0000.png  screenshot-0013.png  screenshot-0026.png
screenshot-0001.png  screenshot-0014.png  screenshot-0027.png
screenshot-0002.png  screenshot-0015.png  screenshot-0028.png
screenshot-0003.png  screenshot-0016.png  screenshot-0029.png
screenshot-0004.png  screenshot-0017.png  screenshot-0030.png
screenshot-0005.png  screenshot-0018.png  screenshot-0031.png
screenshot-0006.png  screenshot-0019.png  screenshot-0032.png
screenshot-0007.png  screenshot-0020.png  screenshot-0033.png
screenshot-0008.png  screenshot-0021.png  screenshot-0034.png
screenshot-0009.png  screenshot-0022.png  screenshot-0035.png
screenshot-0010.png  screenshot-0023.png  screenshot-0036.png
screenshot-0011.png  screenshot-0024.png
screenshot-0012.png  screenshot-0025.png

以上、Oracle Linux インストール中のスクリーンショット取得でした。

2013年12月27日金曜日

Intel NUC で Oracle VM Server

いま流行の Intel NUC (Next Unit of Computing)に
Oracle VM Server 3.2.6 をインストールしてみました。

今回試したのは、Intel NUC DC3217IYE です。

普通にインストールできて、NICもちゃんと認識されています。
ちなみに、Oracle VM Server(OVS)ではデフォルトで bond0 が構成されます。
[root@ovs326-5 ~]# cat /etc/ovs-release
Oracle VM server release 3.2.6
[root@ovs326-5 ~]# ifconfig
bond0     Link encap:Ethernet  HWaddr EC:A8:6B:F2:25:24
          inet addr:192.168.4.25  Bcast:192.168.4.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:58816 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2827 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:4034550 (3.8 MiB)  TX bytes:412380 (402.7 KiB)
eth0      Link encap:Ethernet  HWaddr EC:A8:6B:F2:25:24
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:58816 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2832 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4034550 (3.8 MiB)  TX bytes:413330 (403.6 KiB)
          Interrupt:20 Memory:f7c00000-f7c20000
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:46 errors:0 dropped:0 overruns:0 frame:0
          TX packets:46 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:6905 (6.7 KiB)  TX bytes:6905 (6.7 KiB)
[root@ovs326-5 ~]# lspci
00:00.0 Host bridge: Intel Corporation Device 0154 (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Device 0166 (rev 09)
00:16.0 Communication controller: Intel Corporation Device 1e3a (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579V Gigabit Network Connection (rev 04) ★これがNIC
00:1a.0 USB Controller: Intel Corporation Device 1e2d (rev 04)
00:1b.0 Audio device: Intel Corporation Device 1e20 (rev 04)
00:1d.0 USB Controller: Intel Corporation Device 1e26 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Device 1e56 (rev 04)
00:1f.2 SATA controller: Intel Corporation Device 1e03 (rev 04)
00:1f.3 SMBus: Intel Corporation Device 1e22 (rev 04)

ちなみにCPUは Intel Core i3 です。
Intel Core i3-3217U Processor (3M Cache, 1.80 GHz)
http://ark.intel.com/ja/products/65697/

2コアでハイパースレッディング・テクノロジーが有効なので
OVSからは、4スレッド(4論理CPU)が見えます。
[root@ovs326-5 ~]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 58
model name      : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
stepping        : 9
cpu MHz         : 1797.706
cache size      : 3072 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu de tsc msr pae mce cx8 apic sep mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc pni pclmulqdq est ssse3 cx16 sse4_1 sse4_2 popcnt f16c hypervisor lahf_lm arat epb pln pts dts fsgsbase erms
bogomips        : 3595.41
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 58
model name      : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
stepping        : 9
cpu MHz         : 1797.706
cache size      : 3072 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 1
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu de tsc msr pae mce cx8 apic sep mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc pni pclmulqdq est ssse3 cx16 sse4_1 sse4_2 popcnt f16c hypervisor lahf_lm arat epb pln pts dts fsgsbase erms
bogomips        : 3595.41
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 2
vendor_id       : GenuineIntel
cpu family      : 6
model           : 58
model name      : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
stepping        : 9
cpu MHz         : 1797.706
cache size      : 3072 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 1
apicid          : 2
initial apicid  : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu de tsc msr pae mce cx8 apic sep mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc pni pclmulqdq est ssse3 cx16 sse4_1 sse4_2 popcnt f16c hypervisor lahf_lm arat epb pln pts dts fsgsbase erms
bogomips        : 3595.41
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 58
model name      : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
stepping        : 9
cpu MHz         : 1797.706
cache size      : 3072 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 1
apicid          : 3
initial apicid  : 3
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu de tsc msr pae mce cx8 apic sep mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc pni pclmulqdq est ssse3 cx16 sse4_1 sse4_2 popcnt f16c hypervisor lahf_lm arat epb pln pts dts fsgsbase erms
bogomips        : 3595.41
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

一応 Xen も起動しています…
[root@ovs326-5 ~]# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   552     4     r-----    873.8

以上、ためしに NUC に OVS をインストールしてみた話でした。

2013年12月24日火曜日

最近、ライブマイグレーションのしやすさも大事な気がしました。

最近、ふと
サーバ仮想化環境のアーキテクチャを決めるときには、
ライブマイグレーションのしやすさも考える価値があるのではないかと思いました。
VM をほぼ無停止(OSも、その上のアプリもほぼ無停止)で
他のハイパーバイザに移動できるので、運用がとても楽になるので・・・

たとえば VM のスペックを決めるときに、まずは
  • そのVM がどのようなサービスを提供するのか
  • どらくらいの性能が求められるのか
といったことを考慮すると思います。
当然、その結果として超ハイスペックなVM が必要になることもあると思います。

ただ、可能であれば
ハイスペックな VM をいくつか(少ない台数で)並べるより、


そこそこのスペックのVM を並べること(いわゆるスケールアウト)にすれば、
ライブマイグレーションをしやすくなる
(結果的に運用目的のサービス停止をより少なくできる)
こともあるのではないかと思いました。



運用中にライブマイグレーションをしたくなったとき、
あまりに高負荷な(たとえばメモリ更新が激しすぎるような) VM は
途中で失敗するのではないか、何か別の障害に派生するのではないか
という心配があります。
当然、ライブマイグレーションが100% 成功するとは限らないのですが、
すでに「リスクの高い最新の技術」というわけではなく、
運用面でのメリットを無視できないことも多いのではないでしょうか。

そこで
ハイスペックすぎるVM(いわゆるモンスターVM)をできるだけ
作らないように意識することで、
運用中にライブマイグレーションを実行する敷居を
下げることができないか という思いつきでした。

実際は、そんなに都合のよいスペックのVM を作成できなかったり、
そもそも スケールアウトしやすい アーキテクチャではなかったりする
ことが多いでしょう。
そして、VM をスケールアウトさせることは CPU/メモリ/ディスクといったリソースの
分割損を発生させることにもなるはずです。

なかなかそううまくはいかないのですが、
日頃からサーバ仮想化インフラの最適化を心掛けたいと思います。
そして DRS へ ・・・

以上です。最近ちょっと VM のサイジングについて思ったことでした。

2013年12月7日土曜日

Oracle VM で DRS。

こんにちは。

JPOUG Advent Calendar 2013
http://www.zusaar.com/event/1687004
の12月7日担当です。
昨年、これに参加するべくブログ始めてから1年たってしまいました。

今回は100%ネタがかぶらないであろう Oracle VM 3.x の DRS について
軟式に検証してみます。


DRS とは

DRS とは、正式には
Distributed Resource Scheduling (もしくは Scheduler) といいます。
Oracle VM  Server(以下、OVS)のサーバプールのなかで
稼働状況(CPU、メモリ、NWトラフィックの使用ぐあい)をもとに VM を自動再配置する機能です。
VM の再配置では、ライブマイグレーションが実行されます。
Oracle VM ユーザーズ・ガイド リリース3.2.1
6.5.1 分散リソース・スケジューラ(DRS) 

http://docs.oracle.com/cd/E40528_01/b71928/vmusg-svrpool-policies.html#vmusg-svrpool-drs
某 VMware vSphere の超有名な DRS と似ている・・・

DRSの構成

今回、OVS 4台で DRS 環境を構築してみました。

構築の流れは下記のような感じで、
すべて Oracle VM Manager から設定します。
  1. 共有ストレージに VM の仮想ディスクを配置しておく。
  2. ライブマイグレーションできる構成にする。
  3. Oracle VM のサーバプールの設定で、DRS を有効化する。
DRS 環境の構成イメージです。



Oracle VM Manager のネットワーク設定で
ライブマイグレーションができる状態にして、



サーバプールのポリシー設定で DRS を有効化します。



上記の構成イメージ図は、Oracle VM Manager からはこのように見えます。
サーバプールには OVS が4台あり、
Policy Type が 「Distributed Resource Scheduler」になっています。


※OVS と VM には、それらしい名前を付けてみました。

共有ストレージには、NFSを使用して
ここに VM の仮想ディスクを配置しています。
NFS のリポジトリを、すべてのOVS に接続しています。




DRS 試します。

一般的に実運用中の VM をライブマイグレーションする場合は、
負荷が少ないタイミング(営業時間外とか)を狙って実行することが多いと思います。

そして、ハイパーバイザ(物理サーバ)のバランシングが目的でライブマイグレーションするときは、
高負荷になっていない VM の方を移動する(逃がす)ことが多いです。

主な理由としては・・・
  • 高負荷サーバをライブマイグレーションすると時間がかかる。
    (更新されたメモリをライブマイグレーション中に同期したりするので)
  • 高負荷サーバをライブマイグレーションするとマイグレーション処理が失敗しそう。
    (メモリ更新が、ライブマイグレーションの転送処理に追いつかず失敗しそうで心配)
  • ライブマイグレーションの影響で VM で障害発生ないか心配。
    (「ライブマイグレーションがなんとなく不安」を含む)

そこで、Oracle VM の DRS では
高負荷VM 以外が、別の OVS にライブマイグレーションされやすいのか?
という観点で試してみたいと思います。



DRS 試してみました。

それでは、ためしに DRS してみます。

まず、VM 3台を1台の OVS(OVS#1) で起動しておきます。

DRS 環境での VM と稼働中の OVS の見方 についてですが、
DRS では、VM が自動的にどこかの OVS に移動してしまうので
VM の一覧を見るときはサーバプールのビューにするとわかりやすいです。

サーバプール(例では「svpool1」)を選択して
Perspective で「Virtual Machines」を選択すると、
プールに存在する VM(Name列)と OVS(Server列) のひもづけがわかります。



DRS を発動させるため
VM#1 でわざとCPU使用率を上げて放置します。
# while :; do true ;done
→1VCPUであれば user あたりが 100% 近くなります・・・



しばらく放置すると、DRS によりライブマイグレーションが開始されます。
パッと見でわかりにくいですが、ロックのマークがある OVS 間でマイグレーションされています。




DRS のみかた

ライブマイグレーションの実行履歴は「Job」タブで見られます。
「Created by」が Oracle VM Manager にログインしたユーザ(今回は admin)に
なっている Moving~ が手動ライブマイグレーションです。

DRSで自動ライブマイグレーションされた場合は、
ここが「@OvmAdmin」となります。



今日は 3回試してみて、結果は…
※毎回、手動ライブマイグレーションで OVS#1 にすべての VM を戻しています。

★1回目(1番下)
高負荷 VM#1 と 負荷のないVM#3 が他の OVS に移動した。
→期待とは違う・・・

★2回目(真ん中)
VM#2 と VM#3 が他の OVS に移動した。
→期待通り。

★3回目(一番上)
高負荷VM#1 が他の OVS に移動した…。
最初に VM#1 が移動されたため、それ以降はライブマイグレーションなし。
→期待とは違う・・・

本当は、期待通りになるのではないかと思いましたが、
なんと期待通りの結果にはなりませんでした。
(昨日までは割と期待通りだったのですが・・・)

ただ、そんなに回数を試していないので
必ずしも今回のようになるとは限らないかもしれません。
DRS って某V社のものも「必ずこう動く」という予測ができないですし・・・

微妙な結果でしたが、
ちょっと Oracle VM に興味を持ってもらえるとうれしいです。

以上、Oracle VM DRS の話でした。
明日の JPOUG Advent Calendar 2013 は yuu_tee さんです。よろしくおねがいします。

2013年11月10日日曜日

rlwrap の RPMを作成してみる(EL6系)

今回は、sqlplus と併用することが多い、rlwrap のRPMを作成してみます。

rlwrap は readline のラッパー で、sqlplus と合わせて使うと
コマンドラインの履歴が(「↑」キーなどで)呼び出せるようになります。

インストール自体は、一般的な
./configure
make
make install
で十分なのですが、
rpm コマンドで情報がみられると便利かもしれないと思って
練習ついでにRPMにしてみました。


RPM化するソースファイル

あらかじめ、下記URLのあたりからrlwrapのソースファイルを入手しておきます。
http://sourceforge.jp/projects/freshmeat_rlwrap/releases/
http://utopia.knoware.nl/~hlub/rlwrap/

今回は、DLした下記のファイルをRPM化します。
rlwrap-0.37.tar.gz

今回RPMを作成する環境です。
$ cat /etc/oracle-release
Oracle Linux Server release 6.2
$ uname -r
2.6.32-300.3.1.el6uek.x86_64

RPM作成の手順

RPMの作成中のディレクトリ削除等で事故を避けるため、
rootではなく一般ユーザで実施します。

最初に、rpm-build がインストールされていることを確認します。
$ rpm -q rpm-build
rpm-build-4.8.0-19.el6.x86_64

RPM作成用で利用するディレクトリを作成しておきます。
$ mkdir -p rpmbuild/BUILD
$ mkdir -p rpmbuild/BUILDROOT
$ mkdir -p rpmbuild/RPMS
$ mkdir -p rpmbuild/SOURCES
$ mkdir -p rpmbuild/SPECS
$ mkdir -p rpmbuild/SRPMS

ソースファイルを配置します。
.tar.gzファイル は、rpmbuild が自動的に解凍できるので
そのまま置いておきます。
$ mv rlwrap-0.37.tar.gz rpmbuild/SOURCES/

SPECファイルを作成します。
このファイルに、RPMをどう作成するかを記載しておきます。
$ vi SPECS/rlwrap.spec
SPECファイルには、下記のように記載しておきます。

rlwrap.spec ファイルの記載例
Name:           rlwrap
Version:        0.37
Release:        0%{?dist}
Summary:        Wrapper for GNU readline
License:        GPLv2
URL:            http://utopia.knoware.nl/~hlub/rlwrap/
Source0:        rlwrap-%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root)
BuildRequires:  readline-devel

%description
Wrapper for GNU readline.
readline wrapper => rl-wrap => rlwrap

%prep
%setup -q

%build
%configure
make %{?_smp_mflags}

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%doc AUTHORS COPYING NEWS README
%{_bindir}/rlwrap
%{_mandir}/*/rlwrap.*
%{_datadir}/rlwrap
/usr/share/man/man3/RlwrapFilter.3pm.gz

%changelog
* Sat Nov 9 2013 gowatana <mail-address> 0.37-0
- Initial RPM Package.

ビルド前のディレクトリは下記のようになっています。
$ pwd
/home/gowatana/rpmbuild
$ ls *
BUILD:

BUILDROOT:

RPMS:

SOURCES:
rlwrap-0.37.tar.gz

SPECS:
rlwrap.spec

SRPMS:

RPM作成コマンド「rpmbuild」を実行します。

ちなみに、今回は rlwrap と依存関係がある readline-devel
すでにインストール済みです。
$ rpm -q readline-devel
readline-devel-6.0-3.el6.x86_64
rpmbuild コマンドを実行すると、RPMが作成されます。
$ rpmbuild -ba SPECS/rlwrap.spec
実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.8s03OH
+ umask 022
+ cd /home/gowatana/rpmbuild/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
(省略)
Processing files: rlwrap-debuginfo-0.37-0.el6.x86_64
伸張ファイルの検査中: /usr/lib/rpm/check-files /home/gowatana/rpmbuild/BUILDROOT/rlwrap-0.37-0.el6.x86_64
警告: ホスト名を正式なものにできません: sv1
書き込み完了: /home/gowatana/rpmbuild/SRPMS/rlwrap-0.37-0.el6.src.rpm
書き込み完了: /home/gowatana/rpmbuild/RPMS/x86_64/rlwrap-0.37-0.el6.x86_64.rpm
書き込み完了: /home/gowatana/rpmbuild/RPMS/x86_64/rlwrap-debuginfo-0.37-0.el6.x86_64.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.QS6y6g
+ umask 022
+ cd /home/gowatana/rpmbuild/BUILD
+ cd rlwrap-0.37
+ rm -rf /home/gowatana/rpmbuild/BUILDROOT/rlwrap-0.37-0.el6.x86_64
+ exit 0

上記のRPM作成直後、ディレクトリの中身は下記のようになりました。
ちゃんとRPMが作成されています。
$ pwd
/home/gowatana/rpmbuild
$ ls -R *
BUILD:
rlwrap-0.37

BUILD/rlwrap-0.37:
AUTHORS    Makefile.am  aclocal.m4     configure          filters
BUGS       Makefile.in  completions    configure.ac       src
COPYING    NEWS         config.h       debugfiles.list    stamp-h1
ChangeLog  PLEA         config.h.in    debuglinks.list    test
INSTALL    README       config.log     debugsources.list  tools
Makefile   TODO         config.status  doc

BUILD/rlwrap-0.37/completions:
coqtop  testclient

BUILD/rlwrap-0.37/doc:
Makefile     Makefile.in  rlwrap.man
Makefile.am  rlwrap.1     rlwrap.man.in

BUILD/rlwrap-0.37/filters:
Makefile          RlwrapFilter.pm   listing       pipeto
Makefile.am       censor_passwords  logger        scrub_prompt
Makefile.in       count_in_prompt   null          simple_macro
README            ftp_filter        paint_prompt  template
RlwrapFilter.3pm  history_format    pipeline      unbackspace

BUILD/rlwrap-0.37/src:
Makefile       main.c          ptytty.o    string_utils.c
Makefile.am    main.o          readline.c  string_utils.o
Makefile.in    malloc_debug.c  readline.o  term.c
completion.c   malloc_debug.h  redblack.h  term.o
completion.o   malloc_debug.o  rlwrap      utils.c
completion.rb  pty.c           rlwrap.h    utils.o
filter.c       pty.o           signals.c
filter.o       ptytty.c        signals.o

BUILD/rlwrap-0.37/test:
testclient  testit

BUILD/rlwrap-0.37/tools:
config.guess  config.sub  depcomp  install-sh  missing

BUILDROOT:

RPMS:
x86_64

RPMS/x86_64:
rlwrap-0.37-0.el6.x86_64.rpm
rlwrap-debuginfo-0.37-0.el6.x86_64.rpm

SOURCES:
rlwrap-0.37.tar.gz

SPECS:
rlwrap.spec

SRPMS:
rlwrap-0.37-0.el6.src.rpm

作成したRPMの情報を見てみます。
$ rpm -qpi RPMS/x86_64/rlwrap-0.37-0.el6.x86_64.rpm
Name        : rlwrap                       Relocations: (not relocatable)
Version     : 0.37                              Vendor: (none)
Release     : 0.el6                         Build Date: 2013年11月10日 08時21分24秒
Install Date: (not installed)               Build Host: sv1
Group       : Unspecified                   Source RPM: rlwrap-0.37-0.el6.src.rpm
Size        : 200508                           License: GPLv2
Signature   : (none)
URL         : http://utopia.knoware.nl/~hlub/rlwrap/
Summary     : Wrapper for GNU readline
Description :
Wrapper for GNU readline.
readline wrapper => rl-wrap => rlwrap

ためしにインストール

root ユーザになってからインストールします。
$ su
パスワード:    ★パスワードを入力
# rpm -ivh RPMS/x86_64/rlwrap-0.37-0.el6.x86_64.rpm
準備中...                ########################################### [100%]
   1:rlwrap                 ########################################### [100%]
# which rlwrap
/usr/bin/rlwrap

補足:rlwrapの使い方

rlwrap を使用するには、下記のような感じで sqlplus を起動します。
$ rlwrap sqlplus /nolog

自分のホームディレクトリにある .bash_profile ファイルに
下記のエイリアスを追記しておくと、
sqlplus 起動のたびに rlwrap とつけなくても使用できるようになります。
alias sqlplus='rlwrap sqlplus'


最近気づいたのですが、RHEL系Linuxでは
設定ファイルなどがRPMで提供されることも多いようです。

以上、RPMを作成してみる話でした。

2013年11月3日日曜日

OracleVM Manager 3.x をバージョンアップしてみました。(3.2.1→3.2.6)

Oracle VM Manager(OVMM) 3.2.1 を 3.2.6 にアップグレードしてみました。

手順は・・・
runInstaller.sh スクリプトを実行するだけでした。


アップグレード前

アップグレード前に、現在のバージョンを確認しておきます。
OVMM の ログイン画面の右下に、現在のバージョンが表示されています。
バージョンは 「3.2.1.516」 です。



OVMM にログインした後であれば、
画面右上の「Help」 → 「About」 からバージョン確認ができます。



ここには、バージョンだけでなくビルド番号も表示されます。
  • Version: 3.2.1.516
  • Build: 20130108_516



OVMM のバージョンアップ

OVMM のサービスを起動させたままバージョンスクリプトを実行します。
※ただし、バージョンアップ処理中に、OVMM は自動的に再起動されます。

1. まず、OVMM 3.2.6 のインストールメディアをマウントします。
インストールメディアの直下に、アップグレード用スクリプト(runUpgrader.sh)があります。
[root@ovmm31 ~]# mount /dev/cdrom /media/
mount: ブロックデバイス /dev/cdrom は書き込み禁止です、読込み専用でマウントします
[root@ovmm31 ~]# ls /media/
EULA                  TRANS.TBL        oracle-validated.params  runUpgrader.sh
LICENSE               components       ovmm-installer.bsx       upgrade
OvmSDK_3.2.6.726.zip  createOracle.sh  runInstaller.sh
2. runUpgrader.sh スクリプトを実行します。

※サーバ(VM)のスペックがあまり良くないこともあってか、そこそこ時間がかかりました。
VMのスペックは、VCPU1コア(1300MHz弱)、メモリ2GB でした。
[root@ovmm31 ~]# /media/runUpgrader.sh
Upgrade logfile : /tmp/ovm-manager-3-upgrade-2013-11-03-39.log
2013-11-03 14:39:07
2013-11-03 14:39:07 Starting Oracle VM Manager upgrade...
2013-11-03 14:39:07
2013-11-03 14:39:08 Oracle VM Manager 3.2.6.726 upgrade utility
2013-11-03 14:39:08
2013-11-03 14:39:08
2013-11-03 14:39:08 It is highly recommended to do a full database repository backup prior to upgrading Oracle VM Manager ...
2013-11-03 14:39:08
2013-11-03 14:39:08 Press [Enter] key to continue ...
2013-11-03 14:39:31
2013-11-03 14:39:31 Oracle VM Manager is running ...
2013-11-03 14:39:52 Verifying installation status ...
2013-11-03 14:39:52 Read Oracle VM Manager config file ...
2013-11-03 14:39:52 Skipping database upgrade for the same product version (3.2.1 to 3.2.6)
2013-11-03 14:39:52 Found Oracle VM Manager install files ...
2013-11-03 14:39:52 Found Oracle VM Manager upgrader ...
2013-11-03 14:39:52 Found Oracle WebLogic Server ...
2013-11-03 14:39:52 Found Java ...
2013-11-03 14:39:52 Using the following information :
2013-11-03 14:39:52 Database type : MySQL
2013-11-03 14:39:52 Database Host : localhost
2013-11-03 14:39:52 Database SID : ovs
2013-11-03 14:39:52 Database LSNR : 49500
2013-11-03 14:39:52 Oracle VM Schema : ovs
2013-11-03 14:39:52 Oracle VM Manager UUID : 0004fb000001000012738a647a8d2b17
2013-11-03 14:39:52 Current Build ID : 3.2.1.516
2013-11-03 14:39:52 Upgrade from version : 3.2.1
2013-11-03 14:39:52 Upgrade to version : 3.2.6
2013-11-03 14:39:52 Using /tmp/workdir.yxezXp8207 for backup and export location.
2013-11-03 14:39:52 Using /tmp/patchdir.dOIRj8209 for patching.
2013-11-03 14:39:52 Undeploying previous version of Oracle VM Manager application ...
★このあたりでOVMMをデプロイしなおしている。(Undeploy→Redeploy)
2013-11-03 14:39:52 Undeploying Oracle VM Manager help ...
2013-11-03 14:40:30 Undeploying Oracle VM Manager console ...
2013-11-03 14:40:56 Undeploying Oracle VM Manager core ...
2013-11-03 14:41:54 Waiting for Oracle VM Manager core to fully undeploy...
Waiting...
2013-11-03 14:42:38 Finished undeploying previous version ...
2013-11-03 14:42:38 Upgrading Oracle VM Manager ...
2013-11-03 14:42:38 Backing up old files to /tmp/ovm-manager-3-backup-2013-11-03-144238...
2013-11-03 14:42:40 Removing old files ...
2013-11-03 14:42:40 Unpacking Oracle VM Manager 3.2.6.726
2013-11-03 14:42:45 Refresh system-jazn-data.xml file ...
2013-11-03 14:42:45 Redeploying Oracle VM Manager core container ...
2013-11-03 14:44:49 Redeploying Oracle VM Manager console ...
2013-11-03 14:52:28 Redeploying Oracle VM Manager help ...
2013-11-03 14:53:52 Unpacking Oracle VM Manager CLI Tool
2013-11-03 14:53:53 Disabling HTTP and enabling HTTPS
2013-11-03 14:54:43 Completed upgrade to 3.2.6.726 ...
2013-11-03 14:54:44 Writing updated config in /u01/app/oracle/ovm-manager-3/.config
2013-11-03 14:54:44 Restart WebLogic ...
Stopping Oracle VM Manager                                 [  OK  ] ★OVMM 自動再起動
Starting Oracle VM Manager                                 [  OK  ]
2013-11-03 14:59:58
2013-11-03 14:59:58 Oracle VM Manager upgrade finished ★バージョンアップ終了
[root@ovmm31 ~]#

バージョンアップ後

アップデートスクリプトの処理が完了したあと、
OVMM のサービスが起動するのには数分かかります。
少し待つと、Webブラウザからログイン画面が表示できるようになります。

バージョンアップ後、 OVMM の バージョンは 「3.2.6.726」 になりました。



バージョンアップなので、UUIDはそのままで、バージョン、ビルド番号だけUPしました。
  • Version: 3.2.6.726
  • Build: 20130819_726


以上、OVMM のバージョンアップでした。

2013年10月26日土曜日

OVS デフォルトのパーティション構成を、あえて受け入れてみたいと思います。

前のポストから時間が少し空きましたが

Oracle VM Serverをインストールしている最中に、
デフォルトのパーティション構成だと、まだ空き領域(Free Space)があるのを見て
何となく気になっている日々を過ごしていました。

たとえば、OVS 3.2.1 をデフォルトインストールすると、
下記のような感じになります。
[root@ovs101 ~]# cat /etc/ovs-release
Oracle VM server release 3.2.1
[root@ovs101 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             3.0G  705M  2.1G  25% /  ★デフォルト3GB。もしかしてイケる?
/dev/sda1              99M   28M   67M  29% /boot
tmpfs                 232M     0  232M   0% /dev/shm
none                  232M   40K  232M   1% /var/lib/xenstored

今回は、検証目的で OVS on OVS をやっていて、このVMの仮想ディスクは 8GB にしてあります。
そのため、まだまだ空き容量はあります。(dfの結果からは見えませんが)

ちなみに、このOVSはデフォルトパーティション構成でインストールして、
1週間くらい様子を見ていますが、何となく余裕がありそうな気がします。
※特にトラブルを起こしてないこともあると思いますが…


これまでは、仮想/物理 問わず、OS用のディスク容量に空きがあった場合は
条件反射的に、どこかのパーティションに空き領域を割り振っていました。
たとえば、今回のOVS(のVM)構成であれば、これまでは間違いなく
残りディスク容量は 「/(ルート) 」 に割り当てていました。
それには、「想定外のログ肥大やコアファイル出力で、
空きディスク領域なくなったりしそう」という心配もありましたが・・・

ただ、最近だと
「使わないディスク領域はそのまま空けておく」 もアリに思えてきました。

  • そもそも、本当に、ルートが3GBでもやっていけるのか気になる。
    OVS3系の Dom-0 が、実際どれくらい容量を必要とするのか知っておきたい。
  • あえて最大容量を絞ることで 「サーバ要塞化」 的な感覚を養えそうな気がする。
    ハイパーバイザや Dom-0 は、ディスク容量的に軽いに越したことはないので
    余計なソフトウェアを導入しないように・・・
  • 今回は VM なので、後からの再構築やディスク容量変更が物理環境よりやりやすい。


しばらく、OVSディスク構成デフォルト環境を体験してみようと思います。

以上、なんとなく避けていたデフォルト値を
あえて受け入れてみようかと思った話でした。

2013年10月15日火曜日

OVSのデフォルトパーティション構成を見て思ったこと。

Oracle VM Server 3 (OVS)のインストールをしているときに
「Remove all partitions on selected drives and create default layout.」
を選択すると、指定したパーティションすべてを使って、デフォルトパーティション構成となります。



そうすると、3つのパーティション(「/boot」、「SWAP」、「/」)が切られます。
このこのときの構成を見て、ふと気になったことがあります。



「まだ空き領域(Free Space)があるが、残りを
/ に割り当てるべきか、そのまま空けておくべきか」 についてです。

ルートのパーティション「/」には 3GB(3072MB)割り当てられています。
OVS特有のリポジトリ(/OVS 的な場所)はNFS等で用意しようと思っているので、
ほかに追加パーティションを作る予定もありません。


つづく (明日くらいまで考えます)

2013年9月15日日曜日

三省堂に「サーバ仮想化」棚が・・・

今日、東京 神田/御茶ノ水あたりの書店に行ってきました。

三省堂書店 神保町本店
http://www.books-sanseido.co.jp/shop/kanda.html

最近、ちょっと棚の配置を変えたみたいなのですが、
5Fコンピュータ関連書籍のフロアに
なんと「サーバ仮想化」棚ができていました。

このあたりです。

※この見取り図は上記の三省堂書店さんのWebサイトにあったものです…
 ちょっと前状態のフロアガイドに、赤字部分を書き足しました。

Hyper-V や VMware、Xen などの書籍が置かれていました。
残念ながら「Oracle VM サーバ仮想化 構築ガイド」は…たまたまありませんでした。

サーバ仮想化がここまで一般的になったのかと
感慨深いものがありました。

以上、三省堂で感動した話でした。


2013/12/09
ちなみに最近、店舗改装がおわったみたいで見に行ったらなくなってました。
感想としては「ですよねー」。

2013年8月30日金曜日

RPMにセキュリティ対策やバグ修正がされているか確認する方法

RPMに対して、セキュリティ対策やバグ修正がされているか確認したい場合、
下記のようなコマンドでRPMのチェンジログ(変更履歴)を見るとわかることが多いです。
rpm -q --changelog <インストール済みRPM名>
rpm -qp --changelog <RPMファイル名(~.rpm)>

当然な話ですが
Oracle VM Server(OVS)もRed HatベースのLinuxなので、
インストールされているRPMのチェンジログがみられます。

ためしに、
OVSにインストールされているXenのRPMについてみてみます。
[root@ovs2 ~]# cat /etc/ovs-release
Oracle VM server release 3.2.1
[root@ovs2 ~]# rpm -qi xen
Name        : xen                          Relocations: (not relocatable)
Version     : 4.1.3                             Vendor: Oracle America
Release     : 25.el5                        Build Date: Thu 06 Dec 2012 02:15:11 AM JST
Install Date: Tue 12 Mar 2013 10:55:47 AM JST      Build Host: ca-build6.us.oracle.com
Group       : Development/Libraries         Source RPM: xen-4.1.3-25.el5.src.rpm
Size        : 12039258                         License: GPL
Signature   : DSA/SHA1, Thu 06 Dec 2012 02:15:36 AM JST, Key ID 66ced3de1e5e0159
URL         : http://xen.org/
Summary     : Xen is a virtual machine monitor
Description :
This package contains the Xen hypervisor and Xen tools, needed to
run virtual machines on x86 systems.

インストールされているXenのチェンジログは、こんな感じで見られます。
[root@ovs2 ~]# rpm -q --changelog xen
* Thu Dec 06 2012 Konrad Wilk <konrad.wilk@oracle.com> - 4.1.3-25
- Xen Security Advisory CVE-2012-5514 / XSA-30 (v4).
  aka. Broken error handling in guest_physmap_mark_populate_on_demand()
  The original checkin was using v1, which did not have the
  extra check for priviliged domains and the less verbose printk.
  This patch updates the xsa-30 to v4.
  ISSUE DESCRIPTION
  =================
  guest_physmap_mark_populate_on_demand(), before carrying out its actual
  operation, checks that the subject GFNs are not in use. If that check fails,
(以下略)

CVE-~のセキュリティ対策がされているかも記載されています。
[root@ovs2 ~]# rpm -q -changelog xen | grep CVE
- Xen Security Advisory CVE-2012-5514 / XSA-30 (v4).
  This is XSA-30 / CVE-2012-5514.
- Xen Security Advisory CVE-2012-5515 / XSA-31
  This is XSA-31 / CVE-2012-5515.
- Xen Security Advisory CVE-2012-5514 / XSA-30
  This is XSA-30 / CVE-2012-5514.
- Xen Security Advisory CVE-2012-5513 / XSA-29
  This is XSA-29 / CVE-2012-5513.
- Xen Security Advisory CVE-2012-5512 / XSA-28
  This is XSA-28 / CVE-2012-5512.
(以下略)

バグ修正についても記載されています。
たとえば、[bug 13845552] が修正済みか調べる場合は、
[root@ovs2 ~]# rpm -q -changelog xen | grep 13845552
- Correct stop xend return status [bug 13845552] ★修正されていそう
※このバグが特に重要というわけではありません。適当に1つ選びました。

脆弱性調査とかで、CVE番号やバグ番号(BZ#)などでgrepして見たりします。

以上、チェンジログ確認の話でした・・・

2013年8月29日木曜日

ためしにOracle 12c RAC をインストールしてみて(DB編)

12c RAC を構築してみました。

RACインストール~DB作成の流れで、いくつか気づいたことを
ピックアップしてお伝えします。(まだ12cRACは試行錯誤なので…)

11gR2以降のRAC環境を構築するとき、
ざっくり、下記のような作業が必要になると思います。
  1. Grid Infrastructureのインストール
  2. データベース配置用のASMディスクグループの作成(ASMCAなどで)
  3. DBMS(RAC)をインストール
  4. DBを作成(リスナーも作成)

今回の話は、上記 2~です。
基本的には、手順的にも、インストーラ(OUI)の見ため的にも
12cは、11gR2とそんなに変わらない感じでした。
Grid Infraの感想はこちら・・・
ためしにOracle 12c RAC をインストールしてみて(Grid Infrastructure)

ASMCAについて

ASMのディスクグループを作成したりすることができる、GUIツールです。
これも、11gのころとあまり変わっていない気がします。






RACインストールについて

Real Application Clustersデータベースのインストールです。



だんだん、ソフトウェアの必要領域が増えています…
RACの新機能を試したい場合は、Enterprise Editionを選択します。



RACデータベースも、Singleと変わらず、役割ごとに指定できるOSグループが増えました。
ただし、すべてのユーザを分けるのが必須というわけではありません。




RACのDB作成(DBCA)

11gR2~のポリシー管理型RACデータベースは、12cでもあります。



PDB(プラガブル・データベース)を作成できます。いくつ作成するかも選べます。
ただし、ここで複数のPDBを作成すると、PDB名の先頭が同じになります。



クラスタ検証ユーティリティ(CVU)が定期実行できそうです。
インストール時の環境チェックくらいにしか使わないツールだと思っていましたが…
予期しない構成変更とかを検知できるのでしょうか?



データベースファイルの配置についての設定です。
ここで Grid Infra 導入時に作成したディスクグループ以外を選ぶ場合は、
事前にディスクグループを作成しておきます。(ASMCAやsqlplusなどで)
従来通りですが・・・何となく。



DB Vault と Label Securityの設定画面もあります。
DBVaultは、DB管理者に対するアクセス制限をできるツールで、
Lavel Security は DB版SELinuxみたいなものではないかと思っています。
また使ったことがないので、違ったらすみません…





ためしに、3ノードRACです。
[grid@sv12c01 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.CRS_DG.dg
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.DATA_DG.dg
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.net1.network
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.ons
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.proxy_advm
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       sv12c02                  STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       sv12c03                  STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       sv12c01                  169.254.198.145 192.
                                                             168.14.141,STABLE
ora.asm
      1        ONLINE  ONLINE       sv12c01                  STABLE
      2        ONLINE  ONLINE       sv12c02                  STABLE
      3        ONLINE  ONLINE       sv12c03                  STABLE
ora.cvu
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       sv12c01                  Open,STABLE
ora.oc4j
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.racdb.db
      1        ONLINE  ONLINE       sv12c03                  Open,STABLE
      2        ONLINE  ONLINE       sv12c02                  Open,STABLE
      3        ONLINE  ONLINE       sv12c01                  Open,STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       sv12c02                  STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       sv12c03                  STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.sv12c01.vip
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.sv12c02.vip
      1        ONLINE  ONLINE       sv12c02                  STABLE
ora.sv12c03.vip
      1        ONLINE  ONLINE       sv12c03                  STABLE
--------------------------------------------------------------------------------

上記のora.racdb.dbリソースの順番が変なのは、ポリシーベースにしていろいろしていたら、
サーバ→インスタンスの対応がポリシーベースっぽくズレたためです。
SQL> col host_name for a10
SQL> select host_name,instance_name,status from gv$instance
  2  order by 1;

HOST_NAME  INSTANCE_NAME    STATUS
---------- ---------------- ------------
sv12c01    racdb_3          OPEN
sv12c02    racdb_2          OPEN
sv12c03    racdb_1          OPEN

ちなみに、これからRACの勉強をしたい場合は、現段階では
(12cよりは)情報が豊富な11gR2RACを題材としておくと良いのではないかと思いました。
11gR1→11gR2の時ほどの変化ではない&
しばらくはFlexでない従来形式のクラスタやASMが使われそうな気がしたので・・・

以上です。12cRACインストールしてみた話でした。

2013年8月23日金曜日

ためしにOracle 12c RAC をインストールしてみて(Grid Infrastructure)

ためしに、Grid Infrastructure 12c をインストールしてみました。
いくつか気づいたことをお伝えします。

Flex ASM 用のネットワークは、こんな感じで選択できます。
NICの用途選択画面で
ASMおよびプライベート」 と 「ASM」 という種類が増えていて、
Flex ASMにするにはどちらかを選択しておく必要があります。



上記のように選択した場合は、oifcfgコマンドでは下記のように見えます。
[grid@sv12c01 ~]$ oifcfg getif
eth0 192.168.4.0 global public
eth1 192.168.14.0 global cluster_interconnect
eth2 192.168.24.0 global asm

グリッド・インフラストラクチャ・管理リポジトリ
Grid Infrastructure管理用のインスタンス(-MGMTDB)が作成できます。



起動されるプロセスはこんな感じです。
[grid@sv12c01 ~]$ ps -ef | grep mdb_
grid 5201 1 0 19:41 ? 00:00:01 mdb_pmon_-MGMTDB
grid 5203 1 0 19:41 ? 00:00:01 mdb_psp0_-MGMTDB
grid 5207 1 1 19:41 ? 00:01:17 mdb_vktm_-MGMTDB
grid 5213 1 0 19:41 ? 00:00:00 mdb_gen0_-MGMTDB
grid 5215 1 0 19:41 ? 00:00:00 mdb_mman_-MGMTDB
grid 5219 1 0 19:41 ? 00:00:00 mdb_diag_-MGMTDB
grid 5221 1 0 19:41 ? 00:00:00 mdb_dbrm_-MGMTDB
grid 5223 1 0 19:41 ? 00:00:03 mdb_dia0_-MGMTDB
grid 5225 1 0 19:41 ? 00:00:00 mdb_dbw0_-MGMTDB
grid 5227 1 0 19:41 ? 00:00:01 mdb_lgwr_-MGMTDB
grid 5229 1 0 19:41 ? 00:00:02 mdb_ckpt_-MGMTDB
grid 5231 1 0 19:41 ? 00:00:00 mdb_lg00_-MGMTDB
grid 5233 1 0 19:41 ? 00:00:00 mdb_lg01_-MGMTDB
grid 5235 1 0 19:41 ? 00:00:00 mdb_smon_-MGMTDB
grid 5237 1 0 19:41 ? 00:00:00 mdb_lreg_-MGMTDB
grid 5239 1 0 19:41 ? 00:00:00 mdb_rbal_-MGMTDB
grid 5241 1 0 19:41 ? 00:00:00 mdb_asmb_-MGMTDB
grid 5243 1 0 19:41 ? 00:00:05 mdb_mmon_-MGMTDB
grid 5247 1 0 19:41 ? 00:00:02 mdb_mmnl_-MGMTDB
grid 5249 1 0 19:41 ? 00:00:00 mdb_d000_-MGMTDB
grid 5251 1 0 19:41 ? 00:00:00 mdb_s000_-MGMTDB
grid 5253 1 0 19:41 ? 00:00:00 mdb_mark_-MGMTDB
grid 5274 1 0 19:41 ? 00:00:00 mdb_tmon_-MGMTDB
grid 5276 1 0 19:41 ? 00:00:00 mdb_tt00_-MGMTDB
grid 5283 1 0 19:41 ? 00:00:00 mdb_smco_-MGMTDB
grid 5287 1 0 19:41 ? 00:00:00 mdb_fbda_-MGMTDB
grid 5291 1 0 19:41 ? 00:00:00 mdb_aqpc_-MGMTDB
grid 5295 1 0 19:41 ? 00:00:00 mdb_cjq0_-MGMTDB
grid 5308 1 0 19:41 ? 00:00:00 mdb_qm02_-MGMTDB
grid 5312 1 0 19:41 ? 00:00:00 mdb_q002_-MGMTDB
grid 5314 1 0 19:41 ? 00:00:00 mdb_q003_-MGMTDB
grid 5344 1 0 19:41 ? 00:00:00 mdb_p000_-MGMTDB
grid 5348 1 0 19:41 ? 00:00:00 mdb_p001_-MGMTDB
grid 5350 1 0 19:41 ? 00:00:00 mdb_p002_-MGMTDB
grid 5352 1 0 19:41 ? 00:00:00 mdb_p003_-MGMTDB
grid 5354 1 0 19:41 ? 00:00:00 mdb_p004_-MGMTDB
grid 5356 1 0 19:41 ? 00:00:00 mdb_p005_-MGMTDB
grid 5358 1 0 19:41 ? 00:00:00 mdb_p006_-MGMTDB
grid 5360 1 0 19:41 ? 00:00:00 mdb_p007_-MGMTDB
grid 10141 1 0 20:41 ? 00:00:03 mdb_o000_-MGMTDB
grid 10885 1 0 21:05 ? 00:00:00 mdb_w002_-MGMTDB
grid 11370 1 0 21:21 ? 00:00:00 mdb_w001_-MGMTDB
grid 11661 2040 0 21:31 pts/0 00:00:00 grep mdb_

「グリッド・インフラストラクチャ・管理リポジトリ」を作成した場合は、
Grid Infrastructureをインストールしただけですが
_mgmtdb用のデータファイルが作成されます。
※+CRS_DGというASMディスクグループ名はインストール中に指定しました。
[grid@sv12c01 ~]$ asmcmd ls -ls crs_dg/_mgmtdb/*
Type Redund Striped Time Sys Block_Size Blocks Bytes Space Name

+crs_dg/_mgmtdb/CONTROLFILE/:
CONTROLFILE UNPROT FINE AUG 21 19:00:00 Y 16384 613 10043392 16777216 Current.262.823332585

+crs_dg/_mgmtdb/DATAFILE/:
DATAFILE UNPROT COARSE AUG 23 05:00:00 Y 8192 56321 461381632 463470592 SYSAUX.258.823332327
DATAFILE UNPROT COARSE AUG 13 07:00:00 Y 8192 12801 104865792 106954752 SYSGRIDHOMEDATA.261.823332545
DATAFILE UNPROT COARSE AUG 13 07:00:00 Y 8192 262145 2147491840 2149580800 SYSMGMTDATA.260.823332441
DATAFILE UNPROT COARSE AUG 13 07:00:00 Y 8192 76801 629153792 631242752 SYSTEM.259.823332373
DATAFILE UNPROT COARSE AUG 13 07:00:00 Y 8192 7041 57679872 58720256 UNDOTBS1.257.823332303

+crs_dg/_mgmtdb/ONLINELOG/:
ONLINELOG UNPROT COARSE AUG 13 07:00:00 Y 512 102401 52429312 53477376 group_1.263.823332589
ONLINELOG UNPROT COARSE AUG 13 07:00:00 Y 512 102401 52429312 53477376 group_2.264.823332591
ONLINELOG UNPROT COARSE AUG 13 07:00:00 Y 512 102401 52429312 53477376 group_3.265.823332593

+crs_dg/_mgmtdb/PARAMETERFILE/:
PARAMETERFILE UNPROT COARSE AUG 13 23:00:00 Y 512 7 3584 1048576 spfile.267.823332675

+crs_dg/_mgmtdb/TEMPFILE/:
TEMPFILE UNPROT COARSE AUG 13 07:00:00 Y 8192 2561 20979712 22020096 TEMP.266.823332611
PARAMETERFILE UNPROT COARSE AUG 13 23:00:00 N 512 7 3584 1048576 spfile-MGMTDB.ora => +CRS_DG/_MGMTDB/PARAMETERFILE/spfile.267.823332675

Flex ASM の選択画面です。
ためしに Flex ASMにしてみました。



従来のASMインスタンス「+ASM1」以外にも、
新しい種類のインスタンス「+APX1」ができていました。※ノード1です。
[grid@sv12c01 ~]$ ps -ef | grep asm_
grid 11678 2040 0 21:31 pts/0 00:00:00 grep asm_
grid 31818 1 0 19:17 ? 00:00:01 asm_pmon_+ASM1
grid 31820 1 0 19:17 ? 00:00:01 asm_psp0_+ASM1
grid 31822 1 1 19:17 ? 00:01:31 asm_vktm_+ASM1
grid 31826 1 0 19:17 ? 00:00:00 asm_gen0_+ASM1
grid 31828 1 0 19:17 ? 00:00:00 asm_mman_+ASM1
grid 31832 1 0 19:17 ? 00:00:05 asm_diag_+ASM1
grid 31834 1 0 19:17 ? 00:00:00 asm_ping_+ASM1
grid 31836 1 0 19:17 ? 00:00:17 asm_dia0_+ASM1
grid 31838 1 0 19:17 ? 00:00:13 asm_lmon_+ASM1
grid 31840 1 0 19:17 ? 00:00:09 asm_lmd0_+ASM1
grid 31842 1 0 19:17 ? 00:00:18 asm_lms0_+ASM1
grid 31846 1 0 19:17 ? 00:00:02 asm_lmhb_+ASM1
grid 31848 1 0 19:17 ? 00:00:00 asm_lck1_+ASM1
grid 31850 1 0 19:17 ? 00:00:00 asm_gcr0_+ASM1
grid 31852 1 0 19:17 ? 00:00:00 asm_dbw0_+ASM1
grid 31854 1 0 19:17 ? 00:00:00 asm_lgwr_+ASM1
grid 31856 1 0 19:17 ? 00:00:00 asm_ckpt_+ASM1
grid 31858 1 0 19:17 ? 00:00:00 asm_smon_+ASM1
grid 31860 1 0 19:17 ? 00:00:00 asm_lreg_+ASM1
grid 31862 1 0 19:17 ? 00:00:01 asm_rbal_+ASM1
grid 31864 1 0 19:17 ? 00:00:01 asm_gmon_+ASM1
grid 31866 1 0 19:17 ? 00:00:00 asm_mmon_+ASM1
grid 31868 1 0 19:17 ? 00:00:01 asm_mmnl_+ASM1
grid 31870 1 0 19:17 ? 00:00:01 asm_lck0_+ASM1
grid 31926 1 0 19:17 ? 00:00:00 asm_asmb_+ASM1

[grid@sv12c01 ~]$ ps -ef | grep apx_
grid 3341 1 0 19:20 ? 00:00:00 apx_pmon_+APX1
grid 3343 1 0 19:20 ? 00:00:01 apx_psp0_+APX1
grid 3351 1 1 19:20 ? 00:01:30 apx_vktm_+APX1
grid 3355 1 0 19:20 ? 00:00:00 apx_gen0_+APX1
grid 3357 1 0 19:20 ? 00:00:00 apx_mman_+APX1
grid 3361 1 0 19:20 ? 00:00:00 apx_diag_+APX1
grid 3363 1 0 19:20 ? 00:00:02 apx_dia0_+APX1
grid 3365 1 0 19:20 ? 00:00:00 apx_lreg_+APX1
grid 3367 1 0 19:20 ? 00:00:00 apx_rbal_+APX1
grid 3370 1 0 19:20 ? 00:00:00 apx_vdbg_+APX1
grid 3372 1 0 19:20 ? 00:00:00 apx_vubg_+APX1
grid 11682 2040 0 21:31 pts/0 00:00:00 grep apx_

Grid Infrastructure インストール中にrootユーザで実行するスクリプトは、
自動実行できるようになっていました。



上記の画面でOSのrootユーザパスワードを入力しておくと、
インストール中に下記の画面が表示されます。
「はい」をクリックすると、全ノードでスクリプトを自動実行してくれます。




Grid Infrastructureインストール直後のクラスタリソースの状態は
こんな感じです。
※今回は3ノード構成です。

[grid@sv12c01 ~]$ /u01/app/12.1.0/grid/bin/crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.CRS_DG.dg
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.net1.network
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.ons
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
ora.proxy_advm
               ONLINE  ONLINE       sv12c01                  STABLE
               ONLINE  ONLINE       sv12c02                  STABLE
               ONLINE  ONLINE       sv12c03                  STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       sv12c02                  STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       sv12c03                  STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       sv12c01                  169.254.66.67 192.16
                                                             8.14.141,STABLE
ora.asm
      1        ONLINE  ONLINE       sv12c01                  STABLE
      2        ONLINE  ONLINE       sv12c02                  STABLE
      3        ONLINE  ONLINE       sv12c03                  STABLE
ora.cvu
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       sv12c01                  Open,STABLE
ora.oc4j
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       sv12c02                  STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       sv12c03                  STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.sv12c01.vip
      1        ONLINE  ONLINE       sv12c01                  STABLE
ora.sv12c02.vip
      1        ONLINE  ONLINE       sv12c02                  STABLE
ora.sv12c03.vip
      1        ONLINE  ONLINE       sv12c03                  STABLE
--------------------------------------------------------------------------------

以上、12c の Grid Infrastructure をインストールしてみた話でした。