2010年2月14日日曜日

メインフレームエミュレータでLinuxを動かす(11)

今回と次回の2回でCentOS/390にBlogツールとして有名なMovableTypeのインストール手順を紹介したいと思います。メインフレーム用Linuxといってもアプリケーションをインストールする上では普通のLinuxなので、(s390特有の理由で)特にはまる点はないと思います。
今回はMovableType v4を動作させるための下準備を、次回はMovableType付属のツールを使用した環境設定作業を紹介したいと思います。なお、MovableTypeの最新版は、2010/2月時点でv5なのですが、CentOS/390がサポートしているMySQLのバージョンがv4.1である都合上、今回はMovableType v4のインストールを行うことにしました。
1. MySQLとApacheのインストール
yumのgroupinstallコマンドで"MySQL Database"と"Web Server"をインストールします。これで十分かと思いきや、どうやらデータベース本体を動作させるためのパッケージはgroupinstallではインストールされない模様なので、"mysql-server"は別途インストールしました。
[root@localhost ~]# yum -y groupinstall "MySQL Database"
[root@localhost ~]# yum -y groupinstall "Web Server"
[root@localhost ~]# yum -y install mysql-server
ここで試しにapacheが起動できるか試してみました。以下のコマンドでapacheを起動します。
[root@localhost ~]# service httpd start
Starting httpd: [  OK  ]
WebブラウザでCentOS/390(http://192.168.200.1)にアクセスすると、以下のようにapacheのテストページが表示され、apacheが動作していることが確認できます。

2. MovableTypeのインストール
MovableType v4(個人ライセンス版)のzipファイルをここからダウンロードし、CentOS/390の/home/katzkichiにコピーした後(前回設定したSamba経由だと便利)、unzipで展開し、/var/www/cgi-bin/mtにおきます。
[katzkichi@localhost ~]$ unzip -q MT-4_27-ja.zip
[katzkichi@localhost ~]$ su -
Password:
[root@localhost ~]# cd /home/katzkichi
[root@localhost katzkichi]# ls -ltr
total 6940
drwxr-xr-x  14 katzkichi katzkichi    4096 Dec 24 11:58 MT-4.27-ja
drwxr-xr-x   2 katzkichi katzkichi    4096 Jan 30 12:03 Desktop
-rwxr--r--   1 katzkichi katzkichi 7082231 Feb  3 23:49 MT-4_27-ja.zip
[root@localhost katzkichi]# mkdir /var/www/cgi-bin/mt
[root@localhost katzkichi]# mv MT-4.27-ja/* /var/www/cgi-bin/mt
[root@localhost katzkichi]# ls -l /var/www/cgi-bin/mt
total 136
drwxr-xr-x   4 katzkichi katzkichi  4096 Dec 24 11:58 addons
drwxr-xr-x   2 katzkichi katzkichi  4096 Dec 24 11:58 alt-tmpl
drwxr-xr-x   2 katzkichi katzkichi  4096 Dec 24 11:58 default_templates
drwxr-xr-x  39 katzkichi katzkichi  4096 Dec 24 11:58 extlib
drwxr-xr-x   2 katzkichi katzkichi  4096 Dec 24 11:58 import
-rw-r--r--   1 katzkichi katzkichi  3248 Dec 24 11:58 index.html
drwxr-xr-x   3 katzkichi katzkichi  4096 Dec 24 11:58 lib
-rwxr-xr-x   1 katzkichi katzkichi   401 Dec 24 11:58 mt-add-notify.cgi
-rwxr-xr-x   1 katzkichi katzkichi   390 Dec 24 11:58 mt-atom.cgi
-rwxr-xr-x   1 katzkichi katzkichi   383 Dec 24 11:58 mt.cgi
-rwxr-xr-x   1 katzkichi katzkichi 20000 Dec 24 11:58 mt-check.cgi
-rwxr-xr-x   1 katzkichi katzkichi   399 Dec 24 11:58 mt-comments.cgi
-rw-r--r--   1 katzkichi katzkichi  1647 Dec 24 11:58 mt-config.cgi-original
-rwxr-xr-x   1 katzkichi katzkichi   469 Dec 16 15:00 mt-cp.cgi
-rwxr-xr-x   1 katzkichi katzkichi   400 Dec 24 11:58 mt-feed.cgi
-rwxr-xr-x   1 katzkichi katzkichi   405 Dec 24 11:58 mt-ftsearch.cgi
-rwxr-xr-x   1 katzkichi katzkichi   393 Dec 24 11:58 mt-search.cgi
drwxr-xr-x  16 katzkichi katzkichi  4096 Dec 24 11:58 mt-static
-rwxr-xr-x   1 katzkichi katzkichi   392 Dec 24 11:58 mt-tb.cgi
-rwxr-xr-x   1 katzkichi katzkichi   883 Dec 24 11:58 mt-testbg.cgi
-rwxr-xr-x   1 katzkichi katzkichi   396 Dec 24 11:58 mt-upgrade.cgi
-rwxr-xr-x   1 katzkichi katzkichi   346 Dec 24 11:58 mt-wizard.cgi
-rwxr-xr-x   1 katzkichi katzkichi  1084 Dec 24 11:58 mt-xmlrpc.cgi
drwxr-xr-x   5 katzkichi katzkichi  4096 Dec 24 11:58 php
drwxr-xr-x  17 katzkichi katzkichi  4096 Dec 24 11:58 plugins
-rw-r--r--   1 katzkichi katzkichi  4771 Dec 24 11:58 readme.html
drwxr-xr-x   2 katzkichi katzkichi  4096 Dec 24 11:58 search_templates
drwxr-xr-x   7 katzkichi katzkichi  4096 Dec 24 11:58 tmpl
drwxr-xr-x   2 katzkichi katzkichi  4096 Dec 24 11:58 tools
apacheがMovableTypeのCGIを実行可能なように、パーミッションを変えておきます。
[root@localhost katzkichi]# chown -R apache.apache /var/www/cgi-bin/mt
3. mysqldの起動とrootパスワードの設定
まず、mysqldを起動します。
[root@localhost ~]# /etc/init.d/mysqld start
Initializing MySQL database:  [  OK  ]
Starting MySQL:  [  OK  ]
次に、管理ユーザーである"root"のパスワードを設定します。
[root@localhost ~]# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.1.22

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SET PASSWORD FOR root@localhost=PASSWORD('XXXXXXXXXX');
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye
念のため、パスワードが設定されていないユーザーをすべて削除しておきます。
[root@localhost ~]# mysql -uroot -pXXXXXXXXXX
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.1.22

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>  DELETE FROM user WHERE password='';
Query OK, 1 row affected (0.00 sec)
mysql> exit
Bye
4. データベースの作成とMovableType用のユーザー定義
Blogデータを格納するデータベースと、CGI経由でそのデータベースを参照・更新するためのユーザーを作成します。今回はデータベース名は"mtdb", ユーザー名は"katzkichi"とします。
まず、"mtdb"データベースを作成します。mysqlshowコマンドで"mtdb"データベースが作成されたことを確認できます。
[root@localhost ~]# mysqladmin -u root -pXXXXXXXXXX CREATE mtdb
[root@localhost ~]# mysqlshow -pXXXXXXXXXX
+-----------+
| Databases |
+-----------+
| mtdb      |
| mysql     |
| test      |
+-----------+
次に、katzkichiユーザーにmtdbへのアクセス権を与えます。"IDENTIFIED BY"句でパスワードを指定します。
[root@localhost ~]# mysql -u root -pXXXXXXXXXX mtdb
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.1.22

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> GRANT all privileges ON mtdb.* TO katzkichi@localhost IDENTIFIED BY 'YYYYYYYYYY';
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye
katzkichiユーザーでmtdbにアクセスできるか確認します。
[root@localhost ~]# mysql -ukatzkichi -pYYYYYYYYYY mtdb
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 32 to server version: 4.1.22

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show tables;
Empty set (0.00 sec)

mysql> exit
Bye

次回はMovableType v4の付属ツールを使用して、CentOS/390でBlog環境を設定したいと思います。

2010年2月8日月曜日

CentOS/390でJava6使えます

前回、「次回はMovableTypeをインストールします」と書いていたのですが、CentOS/390で(gcjでない)Javaが使えると分かったので、備忘録として書いておこうと思います。
ここから、"IBM 31-bit SDK for Linux on zSeries architecture, Java Technology Edition 2009-12-18" (Java6)がダウンロードできます(要ユーザー登録)。
RPM形式をダウンロードして、CentOS/390にインストールしてみました。なお、依存関係でcompat-libstdc++-33パッケージが必要なので、yumで先にインストールしています。
[root@localhost katzkichi]# yum -y install compat-libstdc++-33
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for compat-libstdc++-33 to pack into transaction set.
compat-libstdc%2B%2B-33-3 100% |=========================| 3.5 kB    00:00
---> Package compat-libstdc++-33.s390 0:3.2.3-47.3 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 compat-libstdc++-33     s390       3.2.3-47.3       base              233 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 233 k
Downloading Packages:
(1/1): compat-libstdc++-3 100% |=========================| 233 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: compat-libstdc++-33          ######################### [1/1]

Installed: compat-libstdc++-33.s390 0:3.2.3-47.3
Complete!
[root@localhost katzkichi]# rpm -ivh ibm-java-s390-sdk-6.0-7.0.s390.rpm
Preparing...                ########################################### [100%]
   1:ibm-java-s390-sdk      ########################################### [100%]
"java -version"を実行してみました。
[root@localhost katzkichi]# /opt/ibm/java-s390-60/bin/java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build pxz3160sr7-20091215_02(SR7))
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Linux s390-31 jvmxz3160sr7-20091214_49398 (JIT enabled, AOT enabled)
J9VM - 20091214_049398
JIT  - r9_20091123_13891
GC   - 20091111_AA)
JCL  - 20091202_01

最新のJavaが使えることが分かったので(パフォーマンスはともかくとして)、さらに色々と楽しめそうです。

メインフレームエミュレータでLinuxを動かす(10)

s390用といってもCentOSなので、普通のLinuxサーバとして動作させるためには(s390用だからといって)特別な設定は必要ありません。
今回はCentOS for s390(以下CentOS/390)上でSambaを動作させ、CentOS/390上に定義されている一般ユーザーのホームディレクトリを母艦Linuxと同じLAN上にあるWindowsマシンからネットワークドライブとして使用可能とするように設定したいと思います。

1. CentOS/390でsambaをインストールし、sambaサービスを起動する。
yumでsambaをインストールします。 groupinstallで"Windows File Server"を指定するのがよさそうです。
[root@localhost ~]# yum -y groupinstall "Windows File Server"
Setting up Group Process
Setting up repositories
update                    100% |=========================|  951 B    00:00
base                      100% |=========================| 1.1 kB    00:00
addons                    100% |=========================|  951 B    00:00
extras                    100% |=========================|  951 B    00:00
Setting up repositories
Reading repository metadata in from local files
Passing package list to Install Process
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for samba to pack into transaction set.
samba-3.0.28-0.c4.9.s390. 100% |=========================| 114 kB    00:05
---> Package samba.s390 0:3.0.28-0.c4.9 set to be updated
---> Downloading header for system-config-samba to pack into transaction set.
system-config-samba-1.2.2 100% |=========================|  22 kB    00:00
---> Package system-config-samba.noarch 0:1.2.21-1.el4.1 set to be updated
---> Downloading header for sysreport to pack into transaction set.
sysreport-1.3.15-8.noarch 100% |=========================| 9.5 kB    00:00
---> Package sysreport.noarch 0:1.3.15-8 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 samba                   s390       3.0.28-0.c4.9    base               16 M
 sysreport               noarch     1.3.15-8         base               19 k
 system-config-samba     noarch     1.2.21-1.el4.1   base              191 k

Transaction Summary
=============================================================================
Install      3 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 16 M
Downloading Packages:
(1/3): samba-3.0.28-0.c4. 100% |=========================|  16 MB    10:12
(2/3): system-config-samb 100% |=========================| 191 kB    00:11
(3/3): sysreport-1.3.15-8 100% |=========================|  19 kB    00:01
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: samba                        ######################### [1/4]
  Installing: system-config-samba          ######################### [2/4]
  Installing: sysreport                    ######################### [3/4]
  Removing  : sos                          ######################### [4/4]

Installed: samba.s390 0:3.0.28-0.c4.9 sysreport.noarch 0:1.3.15-8 system-config-samba.noarch 0:1.2.21-1.el4.1
Complete!
インストールが完了したら、sambaのサービスを起動します。
[root@localhost ~]# service smb start
Starting SMB services: [  OK  ]
Starting NMB services: [  OK  ]
2. Sambaユーザーを設定する。
Sambaユーザーを設定します。 CentOS/390上の一般ユーザー(今回はkatzkichiユーザー)のホームディレクトリを共有可能としたいと思います。"smbpassword"コマンドでkatzkichiユーザーのパスワードを設定します。
[root@localhost ~]# smbpasswd -a katzkichi
New SMB password:
Retype new SMB password:
Added user katzkichi.
3. Windows上でCentOS/390へのstatic routeを設定する。
Windows上のコマンドプロンプトから以下のコマンドを実行して、CentOS/390へのstatic routeを設定します。10.1.243.222はCentOS/390を動作させている母艦LinuxのIPアドレスです
C:\Documents and Settings\katzkichi>route ADD 192.168.200.1 MASK 255.255.255.255 10.1.243.222
routeを設定したら、pingが通るか確認するとよいです。
C:\Documents and Settings\katzkichi>ping -n 1 192.168.200.1

Pinging 192.168.200.1 with 32 bytes of data:

Reply from 192.168.200.1: bytes=32 time=8ms TTL=63

Ping statistics for 192.168.200.1:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 8ms, Maximum = 8ms, Average = 8ms
ちなみに、(当たり前ですが)この段階でWindows上から直接CentOS/390にsshログインできるようになります。結構便利です。
4. ネットワークドライブの割り当て
ネットワークドライブの割り当てを行います。Windowsのデスクトップにある"マイネットワーク"アイコンを右クリックして、「ネットワークドライブの割り当て」を選択すると以下のような画面が表示されます。 ドライブは"Z:"、フォルダには"\\192.168.200.1\katzkichi"を指定して、「完了」を押下します。

以下のような画面が表示されたら、ユーザー名に"katzkichi"、パスワードには2.で設定したものを指定し、「OK」を押下します。

うまく接続できれば、/home/userのホームディレクトリがwindows上で表示されます。

ホームディレクトリに読み書きできるか確認してみるとよいです。 Windows上からホームディレクトリを直接読み書きできるようになるとなかなか便利です。

次回は、(無謀なことに)BlogツールであるMovableTypeのインストールに挑戦します!

2010年1月30日土曜日

メインフレームエミュレータでLinuxを動かす(9)

今回は新しくDASDを追加し、ルートファイルシステム("/")の拡張を行いたいと思います。インストール時点でauto partitionを選択した結果、ルートファイルシステムはLogical Volume Manager (LVM)管理下のVolume Group(VG)に含まれる論理ボリューム(LV)であるLogVol00上にマウントされています。ここの情報を参考にルートファイルシステムを拡張したいと思いますが、このマニュアルではLVM管理下のファイルシステムの拡張については扱っていないので、若干追加の作業が必要です。

1. DASDファイルの追加
母艦Linux上で新たにDASDファイルを作ります。 今回は3390-1型のDASDを作ることにしました。VOLSERは"DASD02"です。
[hercules@ap01 centos_v47_s390]$ dasdinit -lfs DASD02 3390-1 DASD02
HHCDU044I Creating 3390 volume DASD02: 1113 cyls, 15 trks/cyl, 56832 bytes/track
HHCDU041I 1113 cylinders successfully written to file DASD02
HHCDI001I DASD initialization successfully completed.
2. hercules.cnfの編集
hercules.cnfにdevice 0121としてDASD02を足します。
[hercules@ap01 centos_v47_s390]$ vi hercules.cnf
# 0580    3420    ickdsf.ipl
  0120    3390    DASD01
  0121    3390    DASD02 
3. herculesの起動
herculesを起動します。herculesがDASD02を正しく認識していれば、下図のようにherculesコンソールで確認できます。

4. DASDをオンラインにする。
CentOS for s390にrootでログインし、以下のようにしてdevice番号0121のDASDをオンラインにします。今回の環境では、DASD02は/dev/dasdbとして認識されました。
[root@localhost]# cd /sys/bus/ccw/drivers/dasd-eckd/
[root@localhost dasd-eckd]# ls
0.0.0120  0.0.0121
[root@localhost dasd-eckd]# cd 0.0.0121
[root@localhost 0.0.0121]# ls
alias         cmb_enable  detach_state  discipline  online    uid       vendor
availability  cutype      devtype       erplog      readonly  use_diag
[root@localhost 0.0.0121]# cat online
0
[root@localhost 0.0.0121]# echo 1 > online
[root@localhost 0.0.0121]# ls -ltr
total 0
-r--r--r--  1 root root 4096 Jan 16 13:24 vendor
-rw-r--r--  1 root root 4096 Jan 16 13:24 use_diag
-r--r--r--  1 root root 4096 Jan 16 13:24 uid
-rw-r--r--  1 root root 4096 Jan 16 13:24 readonly
-rw-r--r--  1 root root 4096 Jan 16 13:24 erplog
-r--r--r--  1 root root 4096 Jan 16 13:24 discipline
-r--r--r--  1 root root 4096 Jan 16 13:24 devtype
-r--r--r--  1 root root 4096 Jan 16 13:24 cutype
-rw-r--r--  1 root root 4096 Jan 16 13:24 cmb_enable
-r--r--r--  1 root root 4096 Jan 16 13:24 availability
-r--r--r--  1 root root 4096 Jan 16 13:24 alias
-rw-r--r--  1 root root 4096 Jan 16 13:24 detach_state
-rw-r--r--  1 root root    0 Jan 16 13:24 online
lrwxrwxrwx  1 root root    0 Jan 16 13:24 block -> ../../../../block/dasdb
/dev/dasd以下に dasdbが追加されています。
[root@localhost ~]# ls -l /dev/dasd*
brw-rw----  1 root disk 94, 0 Jan 17 05:16 /dev/dasda
brw-rw----  1 root disk 94, 1 Jan 17 05:16 /dev/dasda1
brw-rw----  1 root disk 94, 2 Jan 17 05:16 /dev/dasda2
brw-rw----  1 root disk 94, 4 Jan 17 05:54 /dev/dasdb
/dev/dasd:
total 0
drwxr-xr-x  2 root root 100 Jan 17 05:16 0.0.0120
drwxr-xr-x  2 root root  60 Jan 17 05:54 0.0.0121
5. DASDをフォーマットし、パーティションを作成する。
DASD02を"dasdfmt"コマンドでフォーマットした後、"fdasd"コマンドでパーティションを作成します。今回は/dev/dasdb1の1パーティションのみ作成しました。
[root@localhost 0.0.0121]# dasdfmt -b 4096 -d cdl -f /dev/dasdb -l DASD02 -p -y

cyl  1113 of  1113 |##################################################| 100%

Finished formatting the device.
Rereading the partition table... ok
[root@localhost 0.0.0121]# fdasd /dev/dasdb
reading volume label: VOL1
reading vtoc        : ok

Command action
   m   print this menu
   p   print the partition table
   n   add a new partition
   d   delete a partition
   v   change volume serial
   t   change partition type
   r   re-create VTOC and delete all partitions
   u   re-create VTOC re-using existing partition sizes
   s   show mapping (partition number - data set name)
   q   quit without saving changes
   w   write table to disk and exit

Command (m for help): p

Disk /dev/dasdb:
    1113 cylinders,
      15 tracks per cylinder,
      12 blocks per track
    4096 bytes  per block
volume label: VOL1, volume identifier: DASD02
maximum partition number: 3

 ------------------------------- tracks -------------------------------
               Device      start      end   length   Id  System
                               2    16694    16693       unused

Command (m for help): n
First track (1 track = 48 KByte) ([2]-16694):
Using default value 2
Last track or +size[c|k|M] (2-[16694]):
Using default value 16694

Command (m for help): p

Disk /dev/dasdb:
    1113 cylinders,
      15 tracks per cylinder,
      12 blocks per track
    4096 bytes  per block
volume label: VOL1, volume identifier: DASD02
maximum partition number: 3

 ------------------------------- tracks -------------------------------
               Device      start      end   length   Id  System
          /dev/dasdb1          2    16694    16693    1  Linux native

Command (m for help): w
writing VTOC...
rereading partition table...
[root@localhost 0.0.0121]# 

6. PV (Physical Volume)の作成とVGの拡張
DASD上のパーティションをVGに所属させるためにPV化し、次に"VolGroup01" VGに所属させてVGを拡張します。
[root@localhost 0.0.0121]# pvcreate /dev/dasdb1 
  Physical volume "/dev/dasdb1" successfully created
[root@localhost 0.0.0121]# vgextend VolGroup01 /dev/dasdb1
  Volume group "VolGroup01" successfully extended
pvscanコマンドで/dev/dasdb1がVG VolGroup01の一部になったことが確認できます。
[root@localhost 0.0.0121]# pvscan 
  PV /dev/dasda2   VG VolGroup01   lvm2 [2.19 GB / 32.00 MB free]
  PV /dev/dasdb1   VG VolGroup01   lvm2 [768.00 MB / 768.00 MB free]
  Total: 2 [2.94 GB] / in use: 2 [2.94 GB] / in no VG: 0 [0   ]
7. LV の拡張とファイルシステムの拡張
ルートファイルシステムが載っているLV("LogVol00")を拡張し、その後ルートファイルシステムを新しいLVのサイズに合わせて拡張します。今回はdasda2の残り32MB+dasdb1の768MBあわせて800MB拡張することにします。
[root@localhost 0.0.0121]# lvextend -L +800MB /dev/VolGroup01/LogVol00
  Extending logical volume LogVol00 to 2.53 GB
  Logical volume LogVol00 successfully resized
pvscanを実行すると、すべてのPE (Physical Extent)を使い切ったことが分かります。
[root@localhost 0.0.0121]# pvscan 
  PV /dev/dasda2   VG VolGroup01   lvm2 [2.19 GB / 0    free]
  PV /dev/dasdb1   VG VolGroup01   lvm2 [768.00 MB / 0    free]
  Total: 2 [2.94 GB] / in use: 2 [2.94 GB] / in no VG: 0 [0   ]
ext2onlineで ルートファイルシステムを拡張します(注:最近のlinuxではresize2fsコマンドでext3ファイルシステムのオンライン拡張を行うようですが、CentOS v4.7 for s390に付属のresize2fsはマウントされているファイルシステムを拡張できないようです。)
[root@localhost 0.0.0121]# ext2online /dev/VolGroup01/LogVol00
ext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5b
dfコマンドでルートファイルシステムの使用状況を確認します。 拡張前は使用率86%だったので、無事ファイルシステムが拡張されたことが分かります。
[root@localhost 0.0.0121]# df -m
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup01-LogVol00
                          2550      1456       966  61% /
/dev/dasda1                 97        16        77  17% /boot
none                       125         0       125   0% /dev/shm

8.次回の起動時のための準備
今回追加したDASDが次回の起動時も自動的に利用可能になるように準備します。まず、/etc/modprobe.confの"options dasd_mod dasd="の行に、",121"を追加します。
[root@localhost 0.0.0121]# cat /etc/modprobe.conf

alias ctc0 ctc
options dasd_mod dasd=120,121
alias scsi_hostadapter zfcp
次に/bootにあるinitrd.imgを再作成します。
[root@localhost 0.0.0121]# cd /boot
[root@localhost boot]# mv initrd-2.6.9-78.0.8.EL.img initrd-2.6.9-78.0.8.EL.img.org
[root@localhost boot]# mkinitrd -v initrd-2.6.9-78.0.8.EL.img 2.6.9-78.0.8.EL
Creating initramfs
Looking for deps of module scsi_mod
Looking for deps of module sd_mod        scsi_mod
Looking for deps of module scsi_mod
Looking for deps of module unknown
Looking for deps of module zfcp  qdio scsi_transport_fc scsi_mod
Looking for deps of module qdio
Looking for deps of module scsi_transport_fc     scsi_mod
Looking for deps of module scsi_mod
Looking for deps of module scsi_mod
...
...
Loading module zfcp
Loading module dm-mod
Loading module dasd_mod with options dasd=120,121
Loading module dasd_eckd_mod
Loading module dasd_fba_mod
Loading module jbd
Loading module ext3
Loading module dm-mirror
Loading module dm-zero
Loading module dm-snapshot
最後に"zipl -V"コマンドを実行します。
[root@localhost boot]# zipl -V
Using config file '/etc/zipl.conf'
Target device information
  Device..........................: 5e:00
  Partition.......................: 5e:01
  Device name.....................: dasda
  Device driver name..............: dasd
  DASD device number..............: 0120
  Type............................: disk partition
  Disk layout.....................: ECKD/compatible disk layout
  Geometry - heads................: 15
  Geometry - sectors..............: 12
  Geometry - cylinders............: 3339
  Geometry - start................: 24
  File system block size..........: 4096
  Physical block size.............: 4096
  Device size in physical blocks..: 25596
Building bootmap '/boot//bootmap'
Building menu 'rh-automatic-menu'
Adding #1: IPL section '2.6.9-78.0.8.EL' (default)
  kernel image......: /boot/vmlinuz-2.6.9-78.0.8.EL at 0x10000
  kernel parmline...: 'root=/dev/VolGroup01/LogVol00' at 0x1000
  initial ramdisk...: /boot/initrd-2.6.9-78.0.8.EL.img at 0x800000
Adding #2: IPL section 'linux'
  kernel image......: /boot/vmlinuz-2.6.9-78.EL at 0x10000
  kernel parmline...: 'root=/dev/VolGroup01/LogVol00' at 0x1000
  initial ramdisk...: /boot/initrd-2.6.9-78.EL.img at 0x800000
Preparing boot device: dasda (0120).
Preparing boot menu
  Interactive prompt......: enabled
  Menu timeout............: 15 seconds
  Default configuration...: '2.6.9-78.0.8.EL'
Syncing disks...
Done.

以上でルートファイルシステムの拡張は終了です。 問題なく起動できるか再起動してみるのがよいと思います。
次回は各種サーバを動かしてみたいと思います。

2010年1月26日火曜日

メインフレームエミュレータでLinuxを動かす(8)

さて引き続きCentOS for s390をいじって行きたいと思います。インストールも無事終わりましたので、なにはともあれアップデートを行います。 アップデートを行う前に、DASDファイルのバックアップを取っておくのもよいです(万が一の時にすぐにインストールの直後の状態に戻せる)。
アップデート自体は、"yum -y update"を実行するのみです(以下は少し端折っています)。
 
[root@localhost ~]# yum -y update
Setting up Update Process
Setting up repositories
update                    100% |=========================|  951 B    00:00
base                      100% |=========================| 1.1 kB    00:00
addons                    100% |=========================|  951 B    00:00
extras                    100% |=========================|  951 B    00:00
Reading repository metadata in from local files
primary.xml.gz            100% |=========================|  93 kB    00:00
update    : ################################################## 256/256
primary.xml.gz            100% |=========================| 543 kB    00:35
base      : ################################################## 1437/1437
primary.xml.gz            100% |=========================|  194 B    00:00
primary.xml.gz            100% |=========================| 1.8 kB    00:00
extras    : ################################################## 4/4
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for util-linux to pack into transaction set.
...
...
---> Downloading header for bash to pack into transaction set.
bash-3.0-19.7.c4.1.s390.r 100% |=========================|  48 kB    00:00
---> Package bash.s390 0:3.0-19.7.c4.1 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 kernel                  s390       2.6.9-78.0.8.EL  update             17 M
 sos                     noarch     1.7-6.6.c4       base              102 k
     replacing  sysreport.noarch 1.3.15-8

Updating:
 Canna                   s390       3.7p3-9.c4       update            7.2 M
 Canna-libs              s390       3.7p3-9.c4       update            449 k
 ...
 vsftpd                  s390       2.0.1-7.c4       update            142 k

Transaction Summary
=============================================================================
Install      2 Package(s)
Update      54 Package(s)
Remove       0 Package(s)
Total download size: 85 M
Downloading Packages:
(1/56): util-linux-2.12a- 100% |=========================| 1.5 MB    00:03
...
(56/56): bash-3.0-19.7.c4 100% |=========================| 1.8 MB    00:10
warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 443e1821
Public key for util-linux-2.12a-24.c4.s390.rpm is not installed
Retrieving GPG key from http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
Importing GPG key 0x443E1821 "CentOS-4 key "
Key imported successfully
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating  : setup                        ##################### [  1/111]
  ...
  ...
Complete!
アップデートが完了したら、再起動します。
# shutdown -h now
Herculesのコンソールで、HHCCP010Iメッセージが出たら、再度IPLします。
...
Shutting down interface ctc0:
   OK  !
Shutting down loopback interface:
   OK  !
Starting killall:
   OK  !
Sending all processes the TERM signal...

Sending all processes the KILL signal...
Saving random seed:
Turning off swap:

Turning off quotas:
Unmounting pipe file systems:

Unmounting file systems:

Halting system...
md: stopping all md devices.
md: md0 switched to read-only mode.
HHCCP042I SYSCONS interface inactive
Power down.
CPU0000: SIGP Stop and store status (09) CPU0000, PARM 00000000: CC 0
HHCCP010I CPU0000 store status completed.
Command ==> IPL 120
CentOS for s390が起動したらrootユーザーで再度loginします。
# ssh 192.168.200.1
[root@ap01 ~]# ssh 192.168.200.1
root@192.168.200.1's password:
Last login: Sat Jan 16 12:38:27 2010 from 192.168.200.2
今後の作業のために一般ユーザーを追加し、一旦ログアウトします。
[root@localhost ~]# useradd -d /home/hoge hoge
[root@localhost ~]# passwd hoge
Changing password for user hoge.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# exit
logout
先ほど追加した一般ユーザーで再度ログインします。
[hercules@ap01 ~]$ ssh -l hoge 192.168.200.1
hoge@192.168.200.1's password:
[hoge@localhost ~]$
次は、デフォルトで起動しているサービスのうち使わないものを停止したいと思います(エミュレータ上でCentOSを動作させているので、無駄なものは極力動かしたくないのです)
[hoge@localhost ~]$ su - 
Password: 
[root@localhost ~]# chkconfig --list
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
cups            0:off   1:off   2:on    3:on    4:on    5:on    6:off 
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off
rpcgssd         0:off   1:off   2:off   3:on    4:on    5:on    6:off
messagebus      0:off   1:off   2:off   3:on    4:on    5:on    6:off
iiim            0:off   1:off   2:on    3:on    4:on    5:on    6:off
psacct          0:off   1:off   2:off   3:off   4:off   5:off   6:off
netdump         0:off   1:off   2:off   3:off   4:off   5:off   6:off
rawdevices      0:off   1:off   2:off   3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
tux             0:off   1:off   2:off   3:off   4:off   5:off   6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
readahead       0:off   1:off   2:off   3:off   4:off   5:on    6:off
auditd          0:off   1:off   2:off   3:off   4:off   5:off   6:off
dc_server       0:off   1:off   2:off   3:off   4:off   5:off   6:off
netplugd        0:off   1:off   2:off   3:off   4:off   5:off   6:off
haldaemon       0:off   1:off   2:off   3:on    4:on    5:on    6:off
ipmi            0:off   1:off   2:off   3:off   4:off   5:off   6:off
lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
kudzu           0:off   1:off   2:off   3:off   4:off   5:off   6:off
mdmpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
saslauthd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
xfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
sendmail        0:off   1:off   2:on    3:on    4:on    5:on    6:off
rhnsd           0:off   1:off   2:off   3:on    4:on    5:on    6:off
mdmonitor       0:off   1:off   2:on    3:on    4:on    5:on    6:off
rpcidmapd       0:off   1:off   2:off   3:on    4:on    5:on    6:off
ntpd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
yum             0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
ypbind          0:off   1:off   2:off   3:off   4:off   5:off   6:off
dc_client       0:off   1:off   2:off   3:off   4:off   5:off   6:off
nfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off
portmap         0:off   1:off   2:off   3:on    4:on    5:on    6:off
winbind         0:off   1:off   2:off   3:off   4:off   5:off   6:off
smb             0:off   1:off   2:off   3:off   4:off   5:off   6:off
FreeWnn         0:off   1:off   2:off   3:off   4:off   5:off   6:off
canna           0:off   1:off   2:on    3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
squid           0:off   1:off   2:off   3:off   4:off   5:off   6:off
nscd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
rdisc           0:off   1:off   2:off   3:off   4:off   5:off   6:off
xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:off
readahead_early 0:off   1:off   2:off   3:off   4:off   5:on    6:off
syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
cpuspeed        0:off   1:on    2:on    3:on    4:on    5:on    6:off
vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off
xinetd based services:
        rsync:  off
        klogin: off
        echo-udp:       off
        eklogin:        off
        gssftp: off
        echo:   off
        chargen-udp:    off
        kshell: off
        time-udp:       off
        chargen:        off
        daytime:        off
        cups-lpd:       off
        daytime-udp:    off
        krb5-telnet:    off
        time:   off

cups/sendmailはこのマシン上では動かしていてもしょうがない気がする(^^;)ので停止し、もう立ち上がらないようにします(ちなみにランレベルはrunlevelコマンドで確認できます)。
[root@localhost ~]# service cups stop
Stopping cups: [  OK  ]
[root@localhost ~]# service sendmail stop
Shutting down sm-client: [  OK  ]
Shutting down sendmail: [  OK  ]
[root@localhost ~]# chkconfig cups off
[root@localhost ~]# chkconfig sendmail 

次回は、(前回も書きましたが)DASDの追加について書きたいと思います。

2010年1月20日水曜日

Fedora11 on s390x

Fedora Projectでもs390xアーキテクチャの検討をしているようです。 Preview版のようですがFedora11インストール済みのHercules用DASDイメージもあるみたいです。 

2010年1月17日日曜日

メインフレームエミュレータでLinuxを動かす(7)

前回の続きです。


9. AnacondaでのCentOS v4.7 インストール
Hercules上で動作しているCentOSインストーラーにsshでログインします(rootユーザーでパスワードはありません)。
[root@ap01 ~]# ssh 192.168.200.1
The authenticity of host '192.168.200.1 (192.168.200.1)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.200.1' (RSA) to the list of known hosts.
Welcome to the Red Hat Linux install environment 1.1 for S/390
"Welcome to the Red Hat Linux install environment 1.1 for S/390"のメッセージの後しばらく待つと、インストールの間に使用したい言語を選択する画面(下図)表示されます。
"Japanese"も選択肢にありますが、選んでも「インストーラーは日本語をサポートしていません」的なメッセージが出てしまうので、大方の人は"English"を選択することになると思います。

インストール時に使用する言語を選択すると、"Install method"を選択する画面に移ります。今回は"HTTP"を選択します。
 

HTTPインストールに使用するリポジトリのサーバー名とパス名を入力します。今回は、理研のサーバー(サーバー名に"riken.ftp.jp", パス名に"/Linux/centos/4.7/os/s390")を使用させていただくことにしました(下図)。
 

"OK"を押すと、以下のような画面が表示され、リポジトリから"stage2.img"を取得しているのが分かります。 もし、「サーバーにアクセスできない」というようなメッセージが表示される場合は、前回までに設定した、IPフォワーディング/マスカレード、DNS関係の設定が正しいか確認します。


その後「Xを起動できなかった」というメッセージが表示されます(下図)。今回は "Use text mode"を選択します。

この後、"Welcome To CentOS 4.7!"と表示されるので"OK"を押下して先に進むと、"Installation Type"を選択する画面に移ります。今回は"Server"を選択します。

 次は、(s390/s390x独特の設定だと思うのですが)DASD関連の設定です。 まず、"FCP Devices"と表示された画面で"Add"を押下すると、以下のようにDASDの設定値を入力する画面がポップアップします。
正直どんな値を入力すればよく分からない(^^;)設定なのですが 、とりあえず"Device number"さえ合っていれば動きそうな感じ(実際動きました)なので、上の図のような感じで入力して"OK"を押下します。 
ポップアップ画面が消えた後、"OK"を押下すると、「パーティションテーブルが読めないからDASDを初期化するがいいか」とたずねてくる(下図)ので、"YES"を選択して、DASDを初期化します(初期化には数分かかると思います)。

 

初期化が終了すると、"Disk Partitioning Setup"という画面が表示されます(下図)。 x86のCentOS等と同様、パーティション/マウントポイント等を設定することができますが、今回は"Auto partition"を選択して、インストーラーに「おまかせ」することにします。

"Auto partition"で設定したパーティションレイアウトは以下のようになりました。LVMが使用されていますね。

DASD関係の設定の後は、ネットワーク関係の設定です。 まず、CTCの設定を行います。 入力すべきは "Point to Point (IP)"の欄だけです(その他の部分は入力済みのはずです)。 今回は"192.168.200.2"を入力します。

次はデフォルトゲートウェイおよびDNSサーバーの設定です。設定が正しければ、"OK"を押下して次に進みます。
 

この後しばらく、x86用のCentOSインストールでも行う設定が続きます。以下のような設定を行いました。
  • ホスト名(前回CentOSインストーラーに設定したものと同じ、"localhost")
  • ファイアウォールの設定(今回は"No firewall"としました)
  • SELinuxの設定(こちらも"Disabled"としました)
  • 各国語サポートの追加("日本語"を追加しました)
  • デフォルト言語の設定("English"としました)
  • タイムゾーンの設定("Asia/Tokyo"としました)
  • rootパスワードの設定
これらを設定し終えると、"Reading package information"というメッセージが表示され、数分(母艦Linuxのインターネット回線の速度や、母艦Linuxの性能にもよります)待たされます。Herculesのコンソール画面で"ESC"キーを押下すると、HerculesがエミュレーションしているCPUの各種レジスタやデバイス等の動作状況(下図)が表示されますので、Herculesが止まっていないか心配な(^^;)方は、この画面を見てみるのもよいかも知れません。

しばらくすると、以下のようなインストールパッケージの選択画面が表示されます。 今回は"Server"を選択していますので、X-window関係のパッケージはデフォルトでは選択されていません。基本的にデフォルトで選択されているものをそのままインストールすることにしましたが、"Printing Support"は外しました(パッケージサイズが結構大きいので)。

 

"OK"を押下すると、パッケージのインストールが始まります。これはかなり時間がかかる(例によって、回線スピードと母艦の性能による)と思いますので、気長に待ちます。

インストールが完了すると、以下のような画面が表示されます。

"Reboot"を押すと、CentOSインストーラーがシャットダウンされ、インストーラーを動作させていたSSH端末も切断されます。Herculesコンソールは以下のようなメッセージを表示してコマンド入力待ち状態となります。


ここでHerculesのコマンドラインから、"IPL 120"と入力してEnterするとインストールが完了したばかりのCentOS v4.7 for s390が起動します。

10. CentOS v4.7 for s390の起動
CentOS v4.7 for s390が起動完了すると、Herculesコンソールは以下のようにログインプロンプトを表示します。

コンソールのコマンドラインを使用してログインすることも可能なのですが(CentOSに渡したい文字列の先頭にピリオドをつける)、非常に使いにくいので、インストール時に行ったように、母艦Linux上でもう一つ端末を立ち上げてSSHでHercules上のCentOSにログインするのがよいと思います。

早速ログインして、"uname -m"を実行してみると・・・。

# [root@localhost ~]# uname -m
s390
おー、ハードウェア名が"s390"になっている!(当たり前ですが、ちょっとうれしいですね)
続いて、Bogomips値を確認してみます。

[root@localhost ~]# dmesg | grep -i bogomips
Calibrating delay loop... 392.39 BogoMIPS (lpj=1961984)
むう、こんなものか・・・ 比較のため母艦の方も確認してみましょう。

[hercules@ap01 ~]$ dmesg | grep -i bogomips
Calibrating delay loop (skipped), value calculated using timer frequency.. 2281.82 BogoMIPS (lpj=1140913)
母艦Linuxのbogomips値に比べて、おおよそ1/5弱の値になっているようですね。ま、こんなものでしょうか。ちなみに、我が家には玄箱HGというNASボックスもあるのですが、そいつのBogomips値は173ぐらいですので、とりあえず玄箱HGよりは速い(!?)という事になりました。 さらにもう一つ付け加えると、実は母艦LinuxもWindows上のVirtual PCで動作しています。つまり、"CentOS(s390) on Hercules on CentOS(x86) on Virtual PC on Windows"という感じで動いています。

とりあえずインストール編は今回で終了です。 次回以降は、各種サーバーアプリケーションの立ち上げや、DASDの追加などについて書きたいと思います。