始めてみました。まずはインストールのみ。
月別: 2015年1月
Solaris11
IPMPを除去してやり直し。
root@solaris:~# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE net0 Ethernet up 1000 full e1000g0 net1 Ethernet up 1000 full e1000g1 root@solaris:~# ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1/8 net0/v4 static ok 192.168.0.220/24 lo0/v6 static ok ::1/128
zoneも一旦削除。消したり作ったりを繰り返すと勉強になりますね。
root@solaris:~# zonecfg -z zone1 delete Are you sure you want to delete zone zone1 (y/[n])? y root@solaris:~# zonecfg -z zone2 delete Are you sure you want to delete zone zone2 (y/[n])? y root@solaris:~# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared root@solaris:~#
これでインストール直後の状態に戻ったので、再度zoneを作り直し。作る方法はすでに書いた通りです。
root@solaris:~# zoneadm -z zone1 install root@solaris:~# zoneadm -z zone2 clone zone1 root@solaris:~# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - zone1 installed /mypool/zone1 solaris excl - zone2 installed /mypool/zone2 solaris excl
root@solaris:~# zoneadm boot -z zone1 root@solaris:~# zoneadm boot -z zone2 root@solaris:~# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared 2 zone1 running /mypool/zone1 solaris excl 3 zone2 running /mypool/zone2 solaris excl
起動できたのでconsoleからログインし、それぞれにIPアドレスを振っておきます。
root@solaris:~# zlogin -C zone1 ...
- global: 192.168.0.220/24
- zone1: 192.168.0.221/24
- zone2: 192.168.0.222/24
一応できましたが、zone1やzone2からインターネットに出ることができずにいます。引き続き検証中。
pkg ほにゃらら でパッケージのインストールはできるようなのですが、どうもよくわかりません。中途半端ですがここらへんで一段落としようと思います。
20年
あの震災から20年。京都でしたが体験者の一人として忘れません。5:46。黙祷。。
Solaris11 Zones
zone を作ってみます。 まずZFSのpoolは先日このように用意しておきました。mypoolの下にzoneを2つ作ってみます。
(いまのところネットワークがうまく繋がっていないです。IPMPと併用するとうまくいかないのか、他の理由なのか…)
root@solaris:~# zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT mypool 19.9G 124K 19.9G 0% 1.00x ONLINE - rpool 15.6G 4.87G 10.8G 31% 1.00x ONLINE -
zfs create で領域を作ります。
root@solaris:~# zfs create mypool/zone1 root@solaris:~# zfs create mypool/zone2
zonecfg で zone を作ってみます。
root@solaris:~# zonecfg -z zone1 Use 'create' to begin configuring a new zone. zonecfg:zone1> create create: Using system default template 'SYSdefault' zonecfg:zone1> set zonepath=/mypool/zone1 zonecfg:zone1> verify zonecfg:zone1> commit zonecfg:zone1> exit root@solaris:~#
zone2 も同様に作りました。
root@solaris:~# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - zone1 configured /mypool/zone1 solaris excl - zone2 configured /mypool/zone2 solaris excl
install してみます。pkg.oracle.com からパッケージを取ってくるので時間がかかります。頻繁にやるならローカルに立てたほうがいいでしょう。立て方は公式ドキュメントの Oracle Solaris 11 パッケージリポジトリのコピーおよび作成 に書いてあります。今回は普通にインターネット経由で取得してきました。
root@solaris:~# zoneadm -z zone1 install The following ZFS file system(s) have been created: mypool/zone1 Progress being logged to /var/log/zones/zoneadm.20150108T050021Z.zone1.install Image: Preparing at /mypool/zone1/root. Install Log: /system/volatile/install.10561/install_log AI Manifest: /tmp/manifest.xml.IeaOMu SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml Zonename: zone1 Installation: Starting ... Creating IPS image 開始 リンクされたイメージ: 1/1 完了 Installing packages from: solaris origin: http://pkg.oracle.com/solaris/release/ ダウンロード パッケージ ファイル 転送 (MB) 速度 database/berkeleydb-5 40/282 5682/53275 42.2/351.9 120k/s ... スピード検索データベースを作成しています 完了 パッケージキャッシュを更新しています 1/1 Installation: Succeeded Note: Man pages can be obtained by installing pkg:/system/manual done. Done: Installation completed in 1406.873 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 /mypool/zone1/root/var/log/zones/zoneadm.20150108T050021Z.zone1.install root@solaris:~#
root@solaris:~# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - zone1 installed /mypool/zone1 solaris excl - zone2 configured /mypool/zone2 solaris excl
もし失敗したらやり直します。(例)
root@solaris:~# zoneadm -z zone1 mark incomplete root@solaris:~# zoneadm -z zone1 uninstall root@solaris:~# zoneadm -z zone1 install
無事installが完了したら、起動することを確認してみます。
root@solaris:~# zoneadm -z zone1 boot root@solaris:~#
起動したらコンソールを取ります。
root@solaris:~# zlogin -C zone1 [Connected to zone 'zone1' console]
通常のSolaris11のインストール画面のような初期設定が終わると、ログインできるようになります。
Hostname: zone1 zone1 console login:
一旦落とします。zlogin から抜けるには ~. です。ssh で global zone に入っているときは、~~. で抜けられます。
sugimura@zone1:~$ su - Password: Jan 8 14:30:38 zone1 su: 'su root' succeeded for sugimura on /dev/console Oracle Corporation SunOS 5.11 11.2 June 2014 root@zone1:~# shutdown -i0 -g0 -y Shutdown started. Thu Jan 8 14:30:44 JST 2015
~. [Connection to zone 'zone1' console closed]
zone1をzone2にコピーしてみます。zone2 は zone1 の clone ですよと指定するんですね。
root@solaris:~# zoneadm -z zone2 clone zone1 /mypool/zone2 must not be group readable. /mypool/zone2 must not be group executable. /mypool/zone2 must not be world readable. /mypool/zone2 must not be world executable. changing zonepath permissions to 0700. Progress being logged to /var/log/zones/zoneadm.20150108T053529Z.zone2.clone Log saved in non-global zone as /mypool/zone2/root/var/log/zones/zoneadm.20150108T053529Z.zone2.clone root@solaris:~#
root@solaris:~# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - zone1 installed /mypool/zone1 solaris excl - zone2 installed /mypool/zone2 solaris excl root@solaris:~#
これで2つのzoneをそれぞれ使えるようになりました。両方起動すると次のようになります。
root@solaris:~# zoneadm list -vc ID NAME STATUS PATH BRAND IP 0 global running / solaris shared 3 zone1 running /mypool/zone1 solaris excl 4 zone2 running /mypool/zone2 solaris excl
引き続きこの環境でいろいろ実験していきます。
(参考文献)
Solaris11 IPMP
きょうはIPMPでもやってみますか。
まず2本NICを刺しておきます。起動したら両方ともDHCPでIPアドレスが振られてました。
root@solaris:~# dladm LINK CLASS MTU STATE OVER net0 phys 1500 up -- net1 phys 1500 up --
root@solaris:~# ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1/8 net0/v4 dhcp ok 192.168.0.7/24 net1/v4 dhcp ok 192.168.0.8/24 lo0/v6 static ok ::1/128 net0/v6 addrconf ok fe80::20c:29ff:fe19:3f14/10 net0/v6 addrconf ok 2001:c90:8224:afe:20c:29ff:fe19:3f14/64 net1/v6 addrconf ok fe80::20c:29ff:fe19:3f1e/10 net1/v6 addrconf ok 2001:c90:8224:afe:20c:29ff:fe19:3f1e/64 root@solaris:~#
これらを link-based IPMP にして、IPアドレスを1つ付けるように変えてみます。
まずいま付いているIPアドレスを削除。
root@solaris:~# ipadm delete-addr net0/v4 root@solaris:~# ipadm delete-addr net1/v4 root@solaris:~# ipadm delete-addr net0/v6 root@solaris:~# ipadm delete-addr net1/v6 root@solaris:~# ipadm NAME CLASS/TYPE STATE UNDER ADDR lo0 loopback ok -- -- lo0/v4 static ok -- 127.0.0.1/8 lo0/v6 static ok -- ::1/128 net0 ip down -- -- net1 ip down -- --
次にIPMPインタフェースを作成します。
root@solaris:~# ipadm enable-if -t net0 root@solaris:~# ipadm enable-if -t net1 root@solaris:~# ipadm create-ipmp ipmp0 root@solaris:~# ipadm add-ipmp -i net0 -i net1 ipmp0 root@solaris:~# ipmpstat -g GROUP GROUPNAME STATE FDT INTERFACES ipmp0 ipmp0 ok -- net1 net0
root@solaris:~# ipadm NAME CLASS/TYPE STATE UNDER ADDR ipmp0 ipmp down -- -- lo0 loopback ok -- -- lo0/v4 static ok -- 127.0.0.1/8 lo0/v6 static ok -- ::1/128 net0 ip ok ipmp0 -- net1 ip ok ipmp0 --
IPMPに対してIPアドレスを振ります。ここでは 192.168.0.220 にしました。
root@solaris:~# ipadm create-addr -T static -a 192.168.0.220/24 ipmp0/v4 root@solaris:~# ipadm NAME CLASS/TYPE STATE UNDER ADDR ipmp0 ipmp ok -- -- ipmp0/v4 static ok -- 192.168.0.220/24 lo0 loopback ok -- -- lo0/v4 static ok -- 127.0.0.1/8 lo0/v6 static ok -- ::1/128 net0 ip ok ipmp0 -- net1 ip ok ipmp0 --
いまは inbound に net0、outbound に net0 と net1 の両方が使われていることがわかります。
root@solaris:~# ipmpstat -a ADDRESS STATE GROUP INBOUND OUTBOUND :: down ipmp0 -- -- 192.168.0.220 up ipmp0 net0 net1 net0
VMware で net0 を止めてみます。
ssh で接続していたのですが、セッションが切れずに net1 だけが使われるようになりました。
root@solaris:~# ipmpstat -a ADDRESS STATE GROUP INBOUND OUTBOUND :: down ipmp0 -- -- 192.168.0.220 up ipmp0 net1 net1
syslog には次のように記録されます。
Jan 7 15:56:27 solaris mac: [ID 486395 kern.info] NOTICE: e1000g0 link down Jan 7 15:56:27 solaris in.mpathd[84]: [ID 215189 daemon.error] The link has gone down on net0 Jan 7 15:56:27 solaris in.mpathd[84]: [ID 968981 daemon.error] IP interface failure detected on net0 of group ipmp0
戻しておきます。接続復旧時の syslog はこんな感じ。
Jan 7 16:00:17 solaris mac: [ID 435574 kern.info] NOTICE: e1000g0 link up, 1000 Mbps, full duplex Jan 7 16:00:17 solaris in.mpathd[84]: [ID 820239 daemon.error] The link has come up on net0
(参考文献)
(補足)
そのままでは外に出ないようになっていました。
root@solaris:~# netstat -r Routing Table: IPv4 Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ---------- --------- solaris solaris UH 2 2868 lo0 192.168.0.0 192.168.0.220 U 3 1818 ipmp0 Routing Table: IPv6 (略)
デフォルトゲートウェイを追加しておきます。
root@solaris:~# route -p add default 192.168.0.1 add net default: gateway 192.168.0.1 add persistent net default: gateway 192.168.0.1
root@solaris:~# netstat -r Routing Table: IPv4 Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ---------- --------- default 192.168.0.1 UG 1 0 solaris solaris UH 2 2892 lo0 192.168.0.0 192.168.0.220 U 3 2079 ipmp0
外には出ることができるようになりましたが、名前が引けないので設定しておきます。
root@solaris:~# svccfg -s svc:/network/dns/client setprop \ > config/nameserver=net_address: '(192.168.0.1)' root@solaris:~# root@solaris:~# svccfg -s svc:/network/dns/client listprop config config application config/value_authorization astring solaris.smf.value.name-service.dns.client config/nameserver net_address 192.168.0.1
root@solaris:~# svcadm refresh svc:/network/dns/client root@solaris:~#
これで名前も引けるようになりました。
root@solaris:~# ping sugimura.cc sugimura.cc is alive