nkjmkzk.net

powered by Kazuki Nakajima

Archive for the ‘solaris’ tag

Solarisへのsshログインが異様に遅いときの対処法

sshでログインしようとして異様に遅い場合は「あー、UseDNS変更してなかったわ。」なんてことがよくあります。Linuxでは。sshd_configで「UseDNS  yes」となっているとクライアントのIPを名前解決しに行くので、クライアントのIPが解決できないIPだったり、DNSが止まってたりするとこういうハメになりますよね。

Solaris 11 Expressでもデフォルトでは名前解決を行うのでhostsファイルでもDNSでも名前解決できないと寝そうになるほど待たされます。

なのでsshd_configに「UseDNS  no」と追記してsvcadm restart sshしようっと、と思ってしまうのですが、この設定はSolarisだと怒られます。少なくともSolaris 11 Expressでは。Solaris 11 ExpressのsshdではUseDNSはサポートされていないようで、変わりにVerifyReverseMappingという設定があります。なので、こいつかぁ、と思ってsshd_configに「VerifyReverseMapping  no」と書いてあげるわけですが、いっこうに名前解決を止めてくれる気配はありません。

結論としては、こうです。

[root@~]# vi /etc/ssh/sshd_config
LookupClientHostnames  no
[root@~]# svcadm restart ssh

ご注意を。

without comments

Written by 中嶋 一樹

6月 16th, 2011 at 9:57 pm

Posted in Uncategorized

Tagged with

COMSTARのインストール

順番が前後しまくりですが、そういえば初期セットアップについて書いてなかったので。

まずは何はともあれSolaris 11 Expressをインストールします。ベアメタル(非仮想化)でもいいですし、Oracle VM Server環境がある場合はVM Templateを使ったVMでも構いません。Solaris 11 EpxressのVM Templateはこちらからダウンロードできます。

http://edelivery.oracle.com/linux

OSのインストールが完了したら先日アップしたこちらの記事「Solaris 11 Expressの基本的なネットワーク設定」をもとにネットワークの初期設定をキメてください。

では次に必要なパッケージをインストールします。

[root@~]# pkg install storage-server

パッケージのインストールが完了したら必要なサービスを有効化します。

[root@~]# svcadm enable stmf
[root@~]# svcadm enable -r svc:/network/iscsi/target:default

これでもう完了です。
あとはこちらの記事「COMSTARの設定」をご参考いただきながらボリュームやターゲット等を設定していく、ということになります。

without comments

Written by 中嶋 一樹

6月 15th, 2011 at 12:16 am

Posted in Uncategorized

Tagged with ,

Solaris 11 Expressでの基本的なネットワーク設定

何をいまさら的なアレですが、普段LinuxがメインでSolarisに初めて、または久しぶり触ったときにはどうだったかなーーとよくなります。とりあえずIPを設定してsshで接続できるようになれば後はゆっくりできるでしょう、ということで今回はその部分を解説しておきます。OS環境はSolaris 11 ExpressのOracle VM Templateで進めていきます。

まず現在認識しているネットワークインターフェース名を確認します。(xnf1は僕がVM Templateに追加したインターフェースです。デフォルトではxnf0だけが表示されます)

[root@~]# dladm show-phys
LINK        MEDIA        STATE        SPEED       DUPLEX         DEVICE
xnf0        Ethernet     up              1000        Full                xnf0
xnf1        Ethernet     up              1000        Full                xnf1

次にネットワークの自動設定を無効にし、手動設定を行えるようにします。

[root@~]# svcadm disable svc:/network/physical:nwam
[root@~]# svcadm enable svc:/network/physical:default

nodenameファイルにホスト名を記載します。

[root@~]# vi /etc/nodename
mysolaris

hostsファイルに各セグメントでのホスト名とIPアドレスを記載します。

[root@~]# vi /etc/hosts
::1    mysolaris.local localhost loghost
127.0.0.1    mysolaris.local localhost loghost
172.22.0.63    mysolaris
172.23.0.64    mysolaris-priv

hostname.ファイルを作成してホスト名を記載します。これによって、に該当するネットワークインターフェースにはこのホスト名を解決したIPアドレスがアサインされます。

[root@~]# vi /etc/hostname.xnf0
mysolaris
[root@~]# vi /etc/hostname.xnf1
mysolaris-priv

defaultrouterファイルを作成してデフォルトゲートウェイを記載します。

[root@~]# vi /etc/defaultrouter
172.22.0.1

netmasksファイルを編集して各セグメントのネットワークマスクを記載します。

[root@~]# vi /etc/netmasks
172.22.0.0 255.255.252.0
172.23.0.0 255.255.252.0

resolv.confファイルを作成してDNSを記載します。

[root@~]# vi /etc/resolv.conf
nameserver 172.22.0.52

nsswitch.dnsでnsswitch.confを上書きし、DNSでの名前解決を有効にします。

[root@~#] cp /etc/nsswitch.dns /etc/nsswitch.conf

起動後すぐにsshで接続できるようにoracleユーザでの接続を許可しておきます(VM Templateではデフォルトで無効化されているため)。

[root@~]# vi /etc/ssh/sshd_config
#DenyUsers oracle

リブートします。

[root@~]# reboot

起動してきたらoracleユーザからSSHで接続できること、ホスト名が設定されていること、各ネットワークインターフェースにIPアドレスが正しくアサインされていること、別セグメントに通信できること、名前解決ができることを確認して終了です。

[nkjm@mac ~]$ ssh -l oracle 172.22.0.63
Password: 
Last login: Mon Jun 13 06:55:34 2011
Oracle Corporation      SunOS 5.11      snv_151a        November 2010
oracle@mysolaris:~$ hostname
mysolaris
oracle@mysolaris:~$ ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
xnf0: flags=1000843 mtu 1500 index 2
        inet 172.22.0.63 netmask fffffc00 broadcast 172.22.3.255
xnf1: flags=1000843 mtu 1500 index 3
        inet 172.23.0.63 netmask fffffc00 broadcast 172.23.3.255
lo0: flags=2002000849 mtu 8252 index 1
        inet6 ::1/128 
oracle@mysolaris:~$ ping nkjmkzk.net
nkjmkzk.net is alive

with one comment

Written by 中嶋 一樹

6月 13th, 2011 at 2:46 pm

Posted in Uncategorized

Tagged with

COMSTARの設定

Solaris 11 Expressから利用可能となったCOMSTARの使い方を解説します。

COMSTARはアクセス制御、ターゲットとLUのマッピングなど、非常に柔軟な設定が可能になっている反面、従来のiSCSI Target機構よりも登場するオブジェクトが多く少々複雑です。なのでCOMSTARを操るにあたってはまず登場オブジェクトの一覧とそれらの相関関係を理解しておくことが望ましいでしょう。

以下では最もシンプルな構成と応用的な構成の2つの例を挙げ、各オブジェクトの相関関係を図解しつつ設定方法を掲載しています。

最もシンプルな構成

接続先となるTargetを作成します。

[root@~]# itadm create-target -n iqn.2011-06.oracle:db
Target iqn.2011-06.oracle:db successfully created

zvolを作成します。

[root@~]# zfs create -V 10g rpool/db1

作成したzvolを指定してLUを作成します。

[root@~]# stmfadm create-lu /dev/zvol/rdsk/rpool/db1
Logical unit created: 600144F017C24A0000004DF1060C0003

作成したLUを指定してViewを作成します。

[root@~]# stmfadm add-view 600144F017C24A0000004DF1060C0003

この構成ではViewとTargetの紐づけ、あるいはネットワークインターフェースとTargetの紐づけが行われていません。この場合はiSCSIクライアントはすべてのネットワークインターフェース経由でTargetに接続でき、さらにTargetにログインするとすべてのLUが見えることになります。

応用的な構成


接続を許可したいネットワークインターフェースのIPアドレスを指定してTarget Portal Groupを作成します。

[root@~]# itadm create-tpg ixgbe1 172.22.0.63

接続先となるTargetを作成します。このとき、作成しておいたTarget Portal GroupとTargetを紐づけることで、このTargetへの接続を受け付けるネットワークインターフェースを指定します。

[root@~]# itadm create-target -n iqn.2011-06.oracle:db -t ixgbe1
Target iqn.2011-06.oracle:db successfully created
[root@~]# itadm create-target -n iqn.2011-06.oracle:dev -t ixgbe1
Target iqn.2011-06.oracle:dev successfully created

Target Gruopを作成してそのメンバーに先ほど作成したTargetを加えます。この作業は一旦Targetをオフラインにする必要があります。

[root@~]# stmfadm create-tg db
[root@~]# stmfadm create-tg dev
[root@~]# stmfadm offline-target iqn.2011-06.oracle:db
[root@~]# stmfadm offline-target iqn.2011-06.oracle:dev
[root@~]# stmfadm add-tg-member -g db iqn.2011-06.oracle:db
[root@~]# stmfadm add-tg-member -g dev iqn.2011-06.oracle:dev
[root@~]# stmfadm online-target iqn.2011-06.oracle:db
[root@~]# stmfadm online-target iqn.2011-06.oracle:dev

Host Groupを作成してそのメンバーに接続を受け付けるiSCSIクライアントのIQNを加えます。

[root@~]# stmfadm create-hg db
[root@~]# stmfadm create-hg dev
[root@~]# stmfadm add-hg-member -g db iqn.2011-06.oracle:dbserver1
[root@~]# stmfadm add-hg-member -g db iqn.2011-06.oracle:dbserver2
[root@~]# stmfadm add-hg-member -g dev iqn.2011-06.oracle:devserver1

zvolを作成します。

[root@~]# zfs create -V 10g rpool/db1
[root@~]# zfs create -V 10g rpool/db2
[root@~]# zfs create -V 10g rpool/db3
[root@~]# zfs create -V 10g rpool/dev1

作成したzvolを指定してLUを作成します。

[root@~]# stmfadm create-lu /dev/zvol/rdsk/rpool/db1
Logical unit created: 600144F017C24A0000004DF1080E0003
[root@~]# stmfadm create-lu /dev/zvol/rdsk/rpool/db2
Logical unit created: 600144F017C24A0000004DF1080E0004
[root@~]# stmfadm create-lu /dev/zvol/rdsk/rpool/db3
Logical unit created: 600144F017C24A0000004DF1080E0005
[root@~]# stmfadm create-lu /dev/zvol/rdsk/rpool/dev1
Logical unit created: 600144F017C24A0000004DF1080E0006

これまでに作成したTarget Group, Host Group, LUを紐づけるViewを作成します。

[root@~]# stmfadm add-view -t db -h db 600144F017C24A0000004DF1080E0003
[root@~]# stmfadm add-view -t db -h db 600144F017C24A0000004DF1080E0004
[root@~]# stmfadm add-view -t db -h db 600144F017C24A0000004DF1080E0005
[root@~]# stmfadm add-view -t dev -h dev 600144F017C24A0000004DF1080E0006

登場オブジェクト一覧

Target Portal Group:

iSCSI接続を受け付けるネットワークインターフェースのグループ。

Target:

iSCSIクライアントから接続する際に宛先となるIQN。Target Portal Groupを指定することによりネットワークインターフェースを制限できる。

Target Group:

Targetのグループ。

Host Group:

接続を受け付けるiSCSIクライアントのInitiator IQNをリストしたグループ。

zvol:

データを格納するボリューム。

LU:

iSCSIでエクスポートするzvol。

View:

LU、Host Group, Target Groupを紐づける設定。

without comments

Written by 中嶋 一樹

6月 9th, 2011 at 9:41 pm

Posted in Uncategorized

Tagged with ,

Solaris 11 Expressでrootログインするには

このネタはすでにかなりいろんなところでTipsが提供されているのですが、何度やっても何故かコマンドをすぐ忘れる自分への戒めとしてここにHow toを書いておきます。

Solairs 11 Expressでインストール時にユーザを作成すると、rootはユーザではなくロールとして作成されるためrootではログインできなくなります(suは可能)。

*ちなみに警告を顧みずユーザを作成しないでインストールを終えた場合は幸いにもrootはユーザとして作成されるため本手順は不要です。

rootでログインできるようにするには下記コマンドを発行。ただそれだけです。

[root@~]# rolemod -K type=normal root

ssh経由でもrootでログインしたい場合は合わせてsshd_configを編集してsshサービスを再起動しておきます。

[root@~]# vi /etc/ssh/sshd_config
PermitRootLogin yes
[root@~]# svcadm restart ssh

ということで普段なんでもかんでもrootで作業しているのがバレバレなエントリでした。

without comments

Written by 中嶋 一樹

3月 9th, 2011 at 4:14 pm

Posted in Uncategorized

Tagged with

Solaris 11 ExpressでGUIを利用する

上図はSolaris 11 ExpressでGNOMEを起動してGUIを有効にした画面です。

OpenSolarisがGUI縛りだったのに対してSolaris 11 Expressは下図のようにインストーラはテキストベース、インストールされる環境もCUIと軽量でスタートできる環境になっています。

NAS等サーバ用途として使う場合等は特にGUIをインストールする必要性は感じませんが、Time Sliderを使ってみたかったり、LaptopにSolaris 11 Expressをインストールしてワークステーションとして使う場合はGUIが欲しくなるでしょう。そんなときは下記の手順で簡単にGUIに必要なパッケージを追加して有効化することができます。

インターネットに接続していることを確認する。

slim_installパッケージをインストールする。これによって依存関係のあるパッケージを含め390個程のパッケージがインストールされます。

[root@~]# pkg install slim_install

一応リブートする。多分しなくても大丈夫ですが一応。

[root@~]# reboot

slim_intallパッケージをアンインストールする。アンインストールしても依存関係のある残り389個のパッケージはインストールされた状態で残ります。この手順は必須なのかどうか確認していませんが、とりあえずやっといて損はないようです。僕も実際アンインストールしました。

[root@~]# pkg uninstall slim_install

GDM(GNOME Display Manager)を有効化する。程なくしてGUIに切り替わります。

[root@~]# svcadm enable gdm

うまくいけばログイン画面が表示され、ログインすると前掲のカコイイGNOME環境が現れます。

参考:

with 3 comments

Written by 中嶋 一樹

1月 31st, 2011 at 12:06 pm

Posted in Uncategorized

Tagged with

Oracle Sun Technology Updateに行ってきました

昨日、8/19に目黒雅叙園にてOracle Sun Technology Updateが開催されました。3Track x 3でセッションが開催され、各セッションは大きく分けてJavaとSolarisを扱う内容でした。その中でも最新情報の提供を行うようなセッションと、DTraceチュートリアルのような具体的な技術話とかなり幅広い内容が提供されたように思います。

僕はSolaris Trackに一日中入り浸っていましたので簡単にレポートしたいと思います。

B-1 Solaris開発環境のご紹介

DSC_0015
大曽根 明さん

Mr.Solarisの異名をとる大曽根さんはOracle Solaris Operating Systemについてこれまでを振り返り、今後のロードマップを紹介しました。

次に新しいH/Wサポートメニュー「Premier Support for Systems」についても紹介しました。Premier Support for SystemsはH/Wの保守プログラムでありながら、同時にOracle Solaris, Oracle Enterprise Linux, Oracle VMが使いたい放題になることを説明。

また、ZFS, Containerについて概要を紹介し、特にZFSについては「非クラスター型で現在最強のファイルシステムだろう」と指摘。そしてSun Studioを使ったデモを披露する等幅広い内容をカバー。

B-2 開発環境でのSolaris ZFS

DSC_0032
野崎 宏明さん

先のセッションで「最強」とされたZFSについて、こちらの@IT記事でもわかりやすい解説をされてる野崎さんからプレゼン。End-to-Endの整合性チェック機構、CoW等ZFSの根幹を成す内部アーキテクチャについて説明。

B-3 DTrace活用術

ZFSと並ぶSolarisの代表的な機構であるDTraceについて藤田さん、本間さんからプレゼン。
DSC_0038
藤田 勇治さん

藤田さんはDTraceが何であるのか、どういった情報がとれて、どのように活用できるのかという全体象を事例を交えて紹介。端的で軽快なトークでDTraceのメリットを限られた時間ながら非常にわかり易く説明されていました。カーネルを特別なビルドオプション付きでコンパイルしたりする必要がない特別な起動オプションもいらないその場でほしい情報を動的に出力させることができる、ということがズドンと理解できる濃密な時間でした。

DSC_0042
本間 大輔さん

本間さんはDTraceのHow toを紹介。「こういう情報をとりたいときは・・」という切り口で実際のスクリプトを見せて解説しながら出力結果を確認していくという実践的なセッション。持ち時間は30分足らずであるにもかかわらずDTraceのサンプルスクリプトを含む実用的な資料を120枚作成するというパッション。事実、この資料はこれからDTraceを使ってみたい!という人にはバイブルでしょう。必見です。バイブルのダウンロードはこちら。
DTrace活用術

特別企画トークライブ:「2020年に向けてITエンジニアはどうやって生き残るか?」

DSC_0044
ウルシステムズ(株)の漆原様、(株)Preferred Infrastureの太田様、クックパッド(株)大野様によるパネルディスカッション。モデレータは弊社の伊藤さん。
はっきり言って、かなり面白いディスカッションでした。何が面白かったかというと、みなさんそれぞれ強い信念をお持ちで、その信念が名言となって出てくるとことです。僕が特に印象に残った名言を下記に挙げさせていただきました。

  • 製品や技術にコミットするかどうかは開発者に会って決める。信頼できるヤツならいける。(漆原様)
  • めちゃ難しいプロジェクトを社員に任せる。できたら、目一杯給料を払ってあげる。それを繰り返す。(漆原様)
  • 今日欲しいと言われたものは明日提供できなければそこに感動はない。(大野様)
  • やりたいことをやる。やりたくないことはやらない。やりたいことを宣言する。(大野様)

それぞれ深い思考や経験を元にしたパワフルな持論です。共感する部分や「なるほど〜」な気付きもあり、非常に有益な時間だったと思います。

個人的には今後SunのテクノロジーとOracleのテクノロジーの合体技をより具体的に訴求するようなセミナーをやりたいなと思っています。Solaris, ASM, ZFS、このあたりがキーワードになるでしょう。楽しくなりそうです。

without comments

Written by 中嶋 一樹

8月 20th, 2010 at 6:29 pm

Posted in Uncategorized

Tagged with , ,

OpenSolaris b133をOracle VM上でPVMとして作成する

OpenSolaris b133をPVM(準仮想マシン)64bitとしてOracle VM上にクリーンインストールする方法を紹介します。

リファレンス:Starting At The C

*最初にお断りしておきますがソコソコ面倒です。

まずはOpenSolaris b133のisoをダウンロードし、VM Serverの/OVS/iso_poolあたりに置いておきます。

[root@vmserver]# cd /OVS/iso_pool
[root@vmserver]# wget http://www.genunix.org/dist/indiana/osol-dev-133-x86.iso

まずVM ServerでこのVMを格納するためのディレクトリを任意の名前で作成しそのディレクトリに移動します。ここではosolとしています。

[root@vmserver]# mkdir /OVS/running_pool/osol
[root@vmserver]# cd /OVS/running_pool/osol

次に仮想ハードディスクをファイルで作成します。Sparse形式で良いでしょう。ここでは推奨値の10GBにしています。(実際は9.8GBくらいになりちょっと足りないのでインストール時に警告がでる。が、無視。)

[root@vmserver]# dd if=/dev/zero of=system.img bs=1M count=1 seek=10000

VMの設定ファイルを作成します。この設定ファイルはインストール用で、インストール後には新しく作り直します。

[root@vmserver]# vi vm_install.cfg
bootloader = '/usr/bin/pygrub'
bootargs = '--kernel=/platform/i86xpv/kernel/amd64/unix --ramdisk=/platform/i86pc/amd64/boot_archive'
name = 'osol'
memory = 1024
on_reboot = destroy
vif = [
'type=netfront,bridge=xenbr0,mac=00:16:3e:00:00:52',
]
disk = [
'file:/OVS/iso_pool/osol-dev-133-x86.iso,xvdc:cdrom,r',
'file:/OVS/running_pool/osol/system.img,xvda,w',
]

VMを起動し、コンソールに接続します。

[root@vmserver]# xm create -c vm_install.cfg

言語とキーボード配列を選び、username:jack, password:jackでログインします。

DHCPサーバが動いている環境であればそのうちIPが割り当てられるのでしばらく待ってからifconfig等でIPを確認します。DHCPがない場合は自分で静的IPを割り当てます。IPが設定されたらコンソールを抜け、VNCのポート番号とパスワードを確認します。これは自動的に設定されているものです。

まずxm listコマンドでVMのdomain IDを確認し、次にxenstore-readコマンドでVNCの情報を取得します。

[root@vmserver]# xm list osol
Name                                        ID   Mem VCPUs      State   Time(s)
osol                                        15   1024  1        -b----     32.3

[root@vmserver]# xenstore-read /local/domain/15/guest/vnc/port
5900

[root@vmserver]# xenstore-read /local/domain/15/guest/vnc/password
bxukNvkb

ここまでで得たVMのIPアドレス、VNC Port番号、VNCパスワードをもって任意のVNCクライアントから接続します。すると通常OpenSolarisのインストールCDから起動したときと同じ画面にログインできます。画面左のショートカットから通常通りインストールウィザードを起動してインストールを進めてます。そして注意しなければいけないのは、インストールが「Finished」となってもすぐにRebootをしないことです。リブートの前にOpenSolaris上でターミナルを開いて以下の作業を行います。

[jack@osol]$ vi update-dom0.sh
#/bin/bash
dom0=$1
dompath=$2
unixfile=/platform/i86xpv/kernel/amd64/unix
root=`pfexec beadm list -H |  grep ';N*R;' | cut -d \; -f 1`
mkdir /tmp/root
pfexec beadm mount $root /tmp/root 2>/dev/null
mount=`pfexec beadm list -H $root | cut -d \; -f 4`
pfexec bootadm update-archive -R $mount
scp $mount/$unixfile root@$dom0:$dompath/kernel.$root
scp $mount/platform/i86pc/amd64/boot_archive root@$dom0:$dompath/ramdisk.$root
pfexec beadm umount $root 2>/dev/null
echo "Kernel and ramdisk for $root copied to $dom0:$dompath"
echo "Kernel cmdline should be:"
echo "$unixfile -B zfs-bootfs=rpool/ROOT/$root,bootpath=/xpvd/xdf@51712:a"
[jack@osol]$ chmod 755 update-dom0.sh
[jack@osol]$ ./update-dom0.sh vmserver1 /OVS/running_pool/osol
(dom0のパスワードを訊かれるので入力する)

これが完了したらRebootボタンを押してリブートしてください。ただし実際にはリブートではなくシャットダウンされます。シャットダウンされたらvm.cfgを作成・編集します。

[root@vmserver]# vi vm.cfg
name='osol'
kernel='/OVS/running_pool/osol/kernel.opensolaris'
ramdisk='/OVS/running_pool/osol/ramdisk.opensolaris'
extra='/platform/i86xpv/kernel/amd64/unix -B zfs-bootfs="rpool/ROOT/opensolaris",bootpath="/xpvd/xdf@51712:a"'
memory=1024
vif= [
'type=netfront,bridge=xenbr0,mac=00:16:3e:00:00:52',
]
disk= [
'file:/OVS/running_pool/osol/system.img,xvda,w',
]

これでインストールは完了です。vm_install.cfgは削除してしまって構いません。新しく作成した設定ファイルで起動してみてください。

[root@vmserver]# xm create -c vm.cfg

GUIにログインしたい場合は以下のようにVM上でVNC Serverを起動してから任意のVNCクライアントで接続すればOKです。適切なIPアドレス設定を忘れずに。

[nkjm@osol]$ vncserver

without comments

Written by 中嶋 一樹

2月 20th, 2010 at 7:13 pm

Posted in Uncategorized

Tagged with ,

Oracle VM上でOpenSolarisをPVMとしてJeOSから作成する方法

注)2010年1月現在、OpenSolarisはOracle VMのゲストOSとしてサポートされていません。

Oracle VM 2.2上でOpenSolaris 2009.06をPVM(準仮想マシン)としてインストールする方法を紹介します。まだプロトタイプという位置づけではあるものの、実はOpenSolaris 2009.06にもいわゆるVMテンプレートが存在します。今回はそのテンプレートを使ってOpenSolarisのPVMを作成します。まずはVMテンプレートをダウンロードします。

OpenSolaris 2009.06 JeOS Prototype VM Images

このページからXen用のPVMイメージをダウンロードします。直リンはこちら。(直リンって久しぶりだな。。)

Xen: Oracle VM, OpenSolaris xVM, etc. KVM: (In XEN HVM mode)

そしてこのイメージは7zipという少し耳慣れないツールで圧縮されています。以下のページからご自身のプラットフォームに応じたモジュールをゲットしてインストールしてください。

http://www.7-zip.org/download.html

僕はp7zip for POSIX/Linuxをダウンロードしてビルドしました。そして使い方で一点ハマリポイントがありました。深く考えずに/usr/local/bin/7za e osol-0906-jeos-proto-xvm-zen-para.7z などとしていたのですが、eだと現在のディレクトリ直下にすべてが解凍されてしまい、サブディレクト内に何にもねぇ!ってことになってしまいます。p7zip for POSIX/Linuxを使われる方はくれぐれも/usr/local/bin/7za x osol-0906-jeos-proto-xvm-zen-para.7z で解凍してください。他のプラットフォームはわかりません。また、Oracle VM Serverにはgcc等の開発キットは含まれていないのでmakeはできません。7zipは他のプラットフォームにインストールしてVMイメージは解凍してからVM Serverに格納するのが吉でしょう。

解凍してできたディレクトリをVM Serverの/OVS/running_pool/直下に保存します。

[root@vmserver]# pwd
/OVS/running_pool

[root@vmserver]# ls
OSOL0906JeOSProto

次に設定ファイル生成スクリプトを編集します。というかこのスクリプトを編集して設定ファイルそのものにしたらいいんじゃないかという気もします。どっちでもいい話ですが、結果的に以下のファイルを作成します。(ファイル名はvm.cfgでなくても良いのですが、Oracle VMの慣例にならってvm.cfgとしておきます。

[root@vmserver]# cd OSOL0906JeOSProto/
[root@vmserver]# vi vm.cfg
name = "OSOL0906JeOSProto"
vcpus = 1
memory = "768"
disk = [
'file:/OVS/running_pool/OSOL0906JeOSProto/System.raw/vdisk.raw,xvda,w',
'file:/OVS/running_pool/OSOL0906JeOSProto/instance.raw/vdisk.raw,xvdb,w'
]
vif = ['type=netfront,bridge=xenbr0,mac=00:16:3e:00:00:01']
on_shutdown = "destroy"
on_reboot = "destroy"
on_crash = "preserve"

あとはxmコマンドで以下のように起動すればOpenSolarisがPVMとして起動します。

[root@vmserver]# xm create vm.cfg -c

ただしこのOpenSolaris、Just Enoughと名乗るだけあってほんとに軽量版です。汎用的に利用するにはいろいろとパッケージを追加する必要があるでしょう。しかし手元の環境ではsshがうまく起動せず、疲れてきたので作業終了しました(オイオイ)。

どなたかこのJeOSでsshを普通に起動する方法をご存知でしたら教えてください。

1/26追記:/lib/svc/method/sshd -cしておくと起動できました。@satokazさん、有難うございます!

ここまで書いておきながらなんですが、僕は普通にvirshを使ってPVMをインストールしようと思います。その手順はまた後ほど。

without comments

Written by 中嶋 一樹

1月 25th, 2010 at 3:25 pm

Posted in Uncategorized

Tagged with ,

ZFSのiSCSI TargetをLinuxから利用するときのアクセス制御設定

仮想化環境でゲストOSにネットワーク経由(iSCSI)で直接ストレージを認識させる場合、ストレージ側で何らかの接続制御を行う必要に迫られます。何も制御してないと、ゲストOS: NKJMからゲストOS:SUZUKI用のボリュームに接続できてしまったりと、意図的であろうとなかろうと本来接続するボリュームとは違うボリュームに接続してしまう可能性があるからです。

ちなみにゲストOSから直接ストレージを認識させる形式ではなく、一旦ホストOS(dom0)に認識させてからゲストOSに貸し出すような形であればホストOS側で制御できるのでそこまでデリケートになる必要はないでしょう。

今回はiSCSIストレージにZFS、ゲストOSにLinux(Oracle Enterprise Linux 5.x, Redhat Enterprise Linux 5.x, CentOS 5.x)を使用しているときのアクセス制御についてまとめておきます。

「オペレーションミスを予防する」という目的であればInitiator IQNでアクセス制御する程度がシンプルでいいでしょう。しかしInitiator IQNは簡単に詐称できるので、セキュリティを真に確保しなければいけないPublicな環境であればより強固な認証を実施することが求められるでしょう。

それぞれの制御方法について順に紹介していきます。

Initiator IQNで認証

特定のTargetにアクセスできるInitiator IQNをあらかじめ定義しておき、アクセス時のInitiator IQNをベースに制御を行うものです。

Initiator側(Linux)

特に設定は必要ありませんが、Initiator IQNの情報だけ取得しておく必要があります。

[root@initiator1]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1994-05.com.redhat:123456

Target側(OpenSolaris)

まず接続を許可するInitiator IQNのオブジェクトを作成します。オブジェクト名は何でも構いませんが今回はinitiator1としています。

[root@target]# iscsitadm create initiator -n iqn.1994-05.com.redhat:123456 initiator1

次にそのInitiatorオブジェクトと、アクセスを許可したいTargetを紐づけます。

[root@target]# iscsitadm modify target -l initiator1 [TARGET_NAME]

これでTARGET_NAMEはinitiator1,つまりiqn.1994-05.com.redhat:123456からのアクセスのみを許可するようになります。

CHAP認証

CHAP認証ではInitiator IQNの検査に加えusername/passwordによる認証を行います。

Initiator側(Linux)

CHAPのusername/passwordを設定します。これには設定ファイルを編集する方法と、TargetをDiscoveryして登録し、登録されたTargetのプロファイルを設定する方法があります。前者はグローバルなデフォルト設定になるので、新しく登録されたTargetにはすべてこの設定ファイルに記載されているusername/passwordでログインしにいくようになります。Target個別に認証方法やusername/passwordを設定する場合は後者の方法で設定する必要があります。以下では前者の設定ファイルの編集を解説します。

[root@initiator1]# vi /etc/iscsi/iscsid.conf
node.session.auth.authmethod = CHAP
node.session.auth.username = user1
node.session.auth.password = zfszfszfszfs (12文字以上16文字以内)

編集が完了したら設定を反映させるためにiscsidをリスタートします。

[root@initiator1]# service iscsi restart

以上でInitiator側の設定は完了です。

Target側(OpenSolaris)

まず接続を許可するInitiator IQNのオブジェクトを作成します。オブジェクト名は何でも構いませんが今回はinitiator1としています。

[root@target]# iscsitadm create initiator -n iqn.1994-05.com.redhat:123456 initiator1

次にそのInitiatorにusername/passwordを設定します。これはInitiator側で設定したusername/passwordと一致しなければなりません。

まずはusernameです。

[root@target]# iscsitadm modify initiator -H initiator1 user1

次にpasswordです。

[root@target]# iscsitadm modify initiator -C initiator1
*プロンプトが表示され、パスワード(今回はzfszfszfszfs)を2度入力します。

次にそのInitiatorオブジェクトと、アクセスを許可したいTargetを紐づけます。

[root@target]# iscsitadm modify target -l initiator1 [TARGET_NAME]

これでTARGET_NAMEはinitiator1,つまりiqn.1994-05.com.redhat:123456からのアクセスのみを許可し、さらにCHAPの認証が通った場合だけアクセスできるようになります。以下のようにInitiator側から登録とログインを行ってみてください。

[root@initiator1]# iscsiadm -m discovery -t st -p [TARGET_IP]
[root@initiator1]# iscsiadm -m node --login

なお、すでにInitiator側でTargetを登録した状態でiscsid.confを編集してservice iscsi restartしてもログインは成功しません。すでにそのTargetのプロファイルはCHAP認証なしということで作成されているからです。この場合は一度プロファイルをiscsiadm -m node -o deleteとして削除してdiscoverからやり直すか、Targetのプロファイルを個別に設定してやる必要があります。その方法を以下に記載しておきます。

[root@initiator1]# iscsiadm -m node -T [TARGET_IQN] -o update -n node.session.auth.authmethod -v CHAP
[root@initiator1]# iscsiadm -m node -T [TARGET_IQN] -o update -n node.session.auth.username -n user1
[root@initiator1]# iscsiadm -m node -T [TARGET_IQN] -o update -n node.session.auth.password -n zfszfszfszfs

という感じです。

without comments

Written by 中嶋 一樹

9月 19th, 2009 at 6:12 pm

Posted in Uncategorized

Tagged with , , ,