2007/12/17

Red Hat Cluster: CentOS 5.1上でRHCSを使ってみる・予告編

今まで、CentOS上でRed Hat Cluster Suiteを使うべく検証を行ってきた(タグRHCS参照)。結果、CentOS 5.0上ではいろんな問題が見つかったが、CentOS 5.1ではかなり解決されている。まずは、この検証結果を簡単に。

さて、CentOS 5.0上での問題は、このブログでも指摘してきた。
  1. /etc/redhat-release問題(参考: [1])
  2. kmod-gfs問題(参考: [2])
これらの問題が、CentOS 5.1で解決されていることを確認した。

前者は、Congaがクラスタメンバの/etc/redhat-releaseを参照してクラスタメンバ間でバージョンに差異が無いことをチェックするのだが、これが、CentOSのデフォルトのままではダメで、RHEL5だ、と詐称せねばならない、と言う問題。実際にCentOS 5.1をインストールしてLuciから詐称せずにクラスタを構成できる。

後者は、クラスタメンバを再起動したり、フェンスしたりを繰り返すと、ノードの起動に時間がかかったり、シャットダウン不能になったりすると言う問題。これも、実際にCentOS 5.1上でクラスタを構成してみると、発生しないようだ。

なお、『CentOS 5.0からCentOS 5.1へアップグレードする』および『CentOS 5.0からCentOS 5.1へアップグレードする・補足』で指摘した通り、CentOS 5.0を使っていても、yum updateしていれば、CentOS 5.1相当に更新される。

追記(2008/2/24):
検証を再開した。
Red Hat Cluster: CentOS 5.1上でRHCSを使ってみる

2007/12/10

CentOS 5.0からCentOS 5.1へアップグレードする・補足

前のエントリで、
ファイル/etc/redhat-releaseの中身は、
CentOS release 5 (Final)
のままで変化がなかった(ホンマにこれでエエんかいな?)
と書いた。

調べてみると、/etc/redhat-releaseはcentos-releaseというパッケージに含まれている。CentOS 5.1では、このパッケージのバージョンは、5-1.0.el5.centos.1。このパッケージを実際に展開してみると、
$ ls
centos-release-5-1.0.el5.centos.1.i386.rpm
$ rpm2cpio centos-release-5-1.0.el5.centos.1.i386.rpm | cpio -id
75 blocks
$ cat etc/redhat-release
CentOS release 5 (Final)
$
ということで、「CentOS release 5」のまま変化しないのが正しいようだ。

レポジトリを調べてみると、ディレクトリ5.0および5.1が存在していて、5が5.1へのシンボリックリンクになっている様に見える。
なので、CentOS 5.0も、普通にyum updateすれば、自然に5.1へアップグレードしている、と言うことになる。

2007/12/04

CentOS 5.0からCentOS 5.1へアップグレードする

RHEL 5.1リリース! CentOS 5.1も近日中に」で紹介したCentOS5.1がついにリリースされた。ということで、Xen DomU上のCentOS 5(CentOS5.0)ををCentOS 5.1へアップグレード(バージョンアップ)してみた(こんなときには、VLMのスナップショット機能とXenの組合が便利だ)

2008/7/7追記:
CentOS 5.1からCentOS 5.2へアップグレードする』を公開した。

手順は簡単で、単に
# yum update
とするだけ(手間を省くため、-yオプションを付けてyum -y updateとしてもいい)
ただ、手元の環境で実際に作業を行ってみると、halパッケージが欠損していて、これを除外する必要があった。
# yum --exclude=hal update
これは、ミラーリングの時間差の問題で、時間が解決する問題だと思われる。
LVMを認識する際に警告が出ている。特に問題はないようだ。
ファイル/etc/redhat-releaseの中身は、
CentOS release 5 (Final)
のままで変化がなかった(ホンマにこれでエエんかいな?)(2007/12/10(月): これに関して追記した)。
作業ログは、記事の最後を参照。

なお、リリースノートによると、CentOS 5.1では、以前『Red Hat Cluster: 予告編+x』で報告した、/etc/redhat-releaseを修正しなければCongaが正常に動作しない、という問題が解決されたそうだ。
しかし一方、
仮想化ソフトウェア(Xenなど)を使用すると、libvirtパッケージがインストールされます。このパッケージはCentOS5.1以来、 dnsmasqパッケージと依存があります。(dnsmasqは軽量のDNSとDHCPサーバです)。他のDNSかDHCPデーモンにも同じシステムで動かせのであれば、あなたは、dnsmasqがそれらの動作を妨げないことを確認する必要があります。
という記述もあり、Xenを使用している場合には注意が必要だ。

[root@localhost ~]# yum update
Loading "installonlyn" plugin
Setting up Update Process
Setting up repositories
base 100% |=========================| 1.1 kB 00:00
updates 100% |=========================| 951 B 00:00
addons 100% |=========================| 951 B 00:00
ftp://ftp.oss.eznetsols.org/linux/centos/5.1/extras/i386/repodata/repomd.xml: [Errno 4] IOError: [Errno ftp error] (113, 'No route to host')
Trying other mirror.
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 834 kB 00:14
base : ################################################## 2400/2400
Added 743 new packages, deleted 677 old in 11.02 seconds
primary.xml.gz 100% |=========================| 63 kB 00:01
updates : ################################################## 118/118
Added 0 new packages, deleted 764 old in 0.89 seconds
primary.xml.gz 100% |=========================| 157 B 00:00
Added 0 new packages, deleted 0 old in 0.01 seconds
primary.xml.gz 100% |=========================| 60 kB 00:01
extras : ################################################## 190/190
Added 0 new packages, deleted 166 old in 0.31 seconds
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for openssh-clients to pack into transaction set.
openssh-clients-4.3p2-24. 100% |=========================| 35 kB 00:00
---> Package openssh-clients.i386 0:4.3p2-24.el5 set to be updated
---> Downloading header for libacl to pack into transaction set.
libacl-2.2.39-2.1.el5.i38 100% |=========================| 5.9 kB 00:00
---> Package libacl.i386 0:2.2.39-2.1.el5 set to be updated
---> Downloading header for libuser to pack into transaction set.
libuser-0.54.7-2.el5.2.i3 100% |=========================| 37 kB 00:01
---> Package libuser.i386 0:0.54.7-2.el5.2 set to be updated
---> Downloading header for kudzu to pack into transaction set.
kudzu-1.2.57.1.15-1.el5.c 100% |=========================| 57 kB 00:01
<<略>>
cluster-snmp-0.10.0-5.el5 100% |=========================| 6.9 kB 00:00
---> Package cluster-snmp.i386 0:0.10.0-5.el5.centos set to be updated
---> Downloading header for conman to pack into transaction set.
conman-0.1.9.2-8.el5.i386 100% |=========================| 7.7 kB 00:00
---> Package conman.i386 0:0.1.9.2-8.el5 set to be updated
--> Running transaction check
--> Processing Dependency: libkeyutils.so.1 for package: krb5-workstation
--> Processing Dependency: libkeyutils.so.1 for package: krb5-libs
--> Processing Dependency: yum-metadata-parser for package: yum
--> Processing Dependency: libkeyutils.so.1(KEYUTILS_0.3) for package: krb5-libs
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for keyutils-libs to pack into transaction set.
keyutils-libs-1.2-1.el5.i 100% |=========================| 5.0 kB 00:00
---> Package keyutils-libs.i386 0:1.2-1.el5 set to be updated
---> Downloading header for yum-metadata-parser to pack into transaction set.
yum-metadata-parser-1.0-8 100% |=========================| 3.6 kB 00:00
---> Package yum-metadata-parser.i386 0:1.0-8.fc6 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
kmod-gfs-xen i686 0.1.19-7.el5 base 137 k
kmod-gnbd-xen i686 0.1.4-12.el5 base 15 k
sos noarch 1.7-9.1.el5 base 108 k
replacing sysreport.noarch 1.4.3-10.el5

Updating:
Deployment_Guide-en-US noarch 5.1.0-11.el5.centos.1 base 7.1 M
OpenIPMI i386 2.0.6-5.el5.4 base 135 k
OpenIPMI-libs i386 2.0.6-5.el5.4 base 530 k
acl i386 2.2.39-2.1.el5 base 67 k
<<略>>
yum noarch 3.0.5-1.el5.centos.5 base 482 k
yum-updatesd noarch 3.0.5-1.el5.centos.5 base 11 k
Installing for dependencies:
keyutils-libs i386 1.2-1.el5 base 18 k
yum-metadata-parser i386 1.0-8.fc6 base 22 k

Transaction Summary
=============================================================================
Install 5 Package(s)
Update 120 Package(s)
Remove 0 Package(s)

Total download size: 149 M
Is this ok [y/N]: y
Downloading Packages:
(1/125): openssh-clients- 100% |=========================| 446 kB 00:09
(2/125): libacl-2.2.39-2. 100% |=========================| 19 kB 00:01
(3/125): libuser-0.54.7-2 100% |=========================| 434 kB 00:11
(4/125): kudzu-1.2.57.1.1 100% |=========================| 220 kB 00:04
(5/125): hal-0.5.8.1-25.el5_1.1.i386.rpm 1.8 kB 00:00
http://mirror.mirr4u.com/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno -1] Package does not match intended download
Trying other mirror.
http://ftp.daum.net/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
ftp://ftp.oss.eznetsols.org/linux/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 4] IOError: [Errno ftp error] (113, 'No route to host')
Trying other mirror.
http://ftp2.tnc.edu.tw/pub1/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://ftp.iij.ad.jp/pub/linux/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://ftp.riken.jp/Linux/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://centost.centos.org/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://mirror.secuidc.com/centos/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://ftp.tcc.edu.tw/Linux/CentOS/5.1/updates/i386/hal-0.5.8.1-25.el5_1.1.i386.rpm: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
(6/125): system-config-kd 100% |=========================| 117 kB 00:02
(7/125): system-config-ne 100% |=========================| 1.8 MB 00:25
(8/125): keyutils-libs-1. 100% |=========================| 18 kB 00:00
(9/125): dhclient-3.0.5-7 100% |=========================| 275 kB 00:07
<<略>>
(124/125): cluster-snmp-0 100% |=========================| 161 kB 00:04
(125/125): conman-0.1.9.2 100% |=========================| 109 kB 00:02


Error Downloading Packages:
hal - 0.5.8.1-25.el5_1.1.i386: failure: hal-0.5.8.1-25.el5_1.1.i386.rpm from updates: [Errno 256] No more mirrors to try.

[root@localhost ~]# yum --exclude=hal update
Loading "installonlyn" plugin
Setting up Update Process
Setting up repositories
base 100% |=========================| 1.1 kB 00:00
updates 100% |=========================| 951 B 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
Excluding Packages in global exclude list
Finished
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package openssh-clients.i386 0:4.3p2-24.el5 set to be updated
---> Package libacl.i386 0:2.2.39-2.1.el5 set to be updated
---> Package libuser.i386 0:0.54.7-2.el5.2 set to be updated
<<略>>
---> Package cluster-snmp.i386 0:0.10.0-5.el5.centos set to be updated
---> Package conman.i386 0:0.1.9.2-8.el5 set to be updated
--> Running transaction check
--> Processing Dependency: libkeyutils.so.1 for package: krb5-workstation
--> Processing Dependency: libkeyutils.so.1 for package: krb5-libs
--> Processing Dependency: yum-metadata-parser for package: yum
--> Processing Dependency: libkeyutils.so.1(KEYUTILS_0.3) for package: krb5-libs
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Package keyutils-libs.i386 0:1.2-1.el5 set to be updated
---> Package yum-metadata-parser.i386 0:1.0-8.fc6 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
kmod-gfs-xen i686 0.1.19-7.el5 base 137 k
kmod-gnbd-xen i686 0.1.4-12.el5 base 15 k
sos noarch 1.7-9.1.el5 base 108 k
replacing sysreport.noarch 1.4.3-10.el5

Updating:
Deployment_Guide-en-US noarch 5.1.0-11.el5.centos.1 base 7.1 M
OpenIPMI i386 2.0.6-5.el5.4 base 135 k
OpenIPMI-libs i386 2.0.6-5.el5.4 base 530 k
acl i386 2.2.39-2.1.el5 base 67 k
<<略>>
yum noarch 3.0.5-1.el5.centos.5 base 482 k
yum-updatesd noarch 3.0.5-1.el5.centos.5 base 11 k
Installing for dependencies:
keyutils-libs i386 1.2-1.el5 base 18 k
yum-metadata-parser i386 1.0-8.fc6 base 22 k

Transaction Summary
=============================================================================
Install 5 Package(s)
Update 119 Package(s)
Remove 0 Package(s)

Total download size: 148 M
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : libgcc ##################### [ 1/245]
Updating : libstdc++ ##################### [ 2/245]
Updating : audit-libs ##################### [ 3/245]
Updating : openldap ##################### [ 4/245]
<<略>>
Updating : xorg-x11-drv-evdev ##################### [123/245]
Updating : firstboot ##################### [124/245]
Cleanup : openssh-clients ##################### [125/245]
Cleanup : libacl ##################### [126/245]
Cleanup : libuser ##################### [127/245]
Cleanup : kudzu ##################### [128/245]
<<略>>
Cleanup : cluster-snmp ##################### [244/245]
Cleanup : conman ##################### [245/245]

Installed: kmod-gfs-xen.i686 0:0.1.19-7.el5 kmod-gnbd-xen.i686 0:0.1.4-12.el5 sos.noarch 0:1.7-9.1.el5
Dependency Installed: keyutils-libs.i386 0:1.2-1.el5 yum-metadata-parser.i386 0:1.0-8.fc6
Updated: Deployment_Guide-en-US.noarch 0:5.1.0-11.el5.centos.1 OpenIPMI.i386 0:2.0.6-5.el5.4 OpenIPMI-libs.i386 0:2.0.6-5.el5.4 acl.i386 0:2.2.39-2.1.el5 alsa-lib.i386 0:1.0.14-1.rc4.el5 alsa-utils.i386 0:1.0.14-2.rc4.el5 audit.i386 0:1.5.5-7.el5 audit-libs.i386 0:1.5.5-7.el5 audit-libs-python.i386 0:1.5.5-7.el5 autofs.i386 1:5.0.1-0.rc2.55 bind-libs.i386 30:9.3.3-10.el5 bind-utils.i386 30:9.3.3-10.el5 binutils.i386 0:2.17.50.0.6-5.el5 centos-release.i386 10:5-1.0.el5.centos.1 centos-release-notes.i386 0:5.1.0-2 cluster-cim.i386 0:0.10.0-5.el5.centos cluster-snmp.i386 0:0.10.0-5.el5.centos conman.i386 0:0.1.9.2-8.el5 coolkey.i386 0:1.1.0-5.el5 cpp.i386 0:4.1.2-14.el5 cpuspeed.i386 1:1.2.1-1.48.el5 cracklib.i386 0:2.8.9-3.3 cracklib-dicts.i386 0:2.8.9-3.3 crash.i386 0:4.0-4.6.1 device-mapper.i386 0:1.02.20-1.el5 device-mapper-multipath.i386 0:0.4.7-12.el5 dhclient.i386 12:3.0.5-7.el5 dmraid.i386 0:1.0.0.rc13-4.el5 e2fsprogs.i386 0:1.39-10.el5 e2fsprogs-libs.i386 0:1.39-10.el5 emacs.i386 0:21.4-19.el5 emacs-common.i386 0:21.4-19.el5 emacs-leim.i386 0:21.4-19.el5 fetchmail.i386 0:6.3.6-1.1.el5 firstboot.noarch 0:1.4.27.3-1.el5.centos firstboot-tui.noarch 0:1.4.27.3-1.el5.centos freetype.i386 0:2.2.1-19.el5 gfs-utils.i386 0:0.1.12-1.el5 gfs2-utils.i386 0:0.1.38-1.el5 gtk2.i386 0:2.10.4-19.el5 httpd.i386 0:2.2.3-11.el5.centos httpd-manual.i386 0:2.2.3-11.el5.centos hwdata.noarch 0:0.211-1 initscripts.i386 0:8.45.17.EL-1.el5.centos.1 irqbalance.i386 2:0.55-6.el5 kexec-tools.i386 0:1.101-194.4.el5 kpartx.i386 0:0.4.7-12.el5 krb5-libs.i386 0:1.6.1-17.el5 krb5-workstation.i386 0:1.6.1-17.el5 kudzu.i386 0:1.2.57.1.15-1.el5.centos libacl.i386 0:2.2.39-2.1.el5 libgcc.i386 0:4.1.2-14.el5 libpcap.i386 14:0.9.4-11.el5 libselinux.i386 0:1.33.4-4.el5 libselinux-python.i386 0:1.33.4-4.el5 libstdc++.i386 0:4.1.2-14.el5 libuser.i386 0:0.54.7-2.el5.2 libvolume_id.i386 0:095-14.9.el5 luci.i386 0:0.10.0-6.el5.centos.1 lvm2.i386 0:2.02.26-3.el5 lvm2-cluster.i386 0:2.02.26-1.el5 man-pages.noarch 0:2.39-10.el5 mcstrans.i386 0:0.2.6-1.el5 mesa-libGL.i386 0:6.5.1-7.5.el5 microcode_ctl.i386 1:1.17-1.42.el5 mkinitrd.i386 0:5.1.19.6-19 mod_ssl.i386 1:2.2.3-11.el5.centos modcluster.i386 0:0.10.0-5.el5.centos module-init-tools.i386 0:3.3-0.pre3.1.34.el5 nash.i386 0:5.1.19.6-19 nfs-utils.i386 1:1.0.9-24.el5 nspr.i386 0:4.6.5-3.el5 nss.i386 0:3.11.7-1.3.el5.centos nss-tools.i386 0:3.11.7-1.3.el5.centos nss_ldap.i386 0:253-5.el5 ntp.i386 0:4.2.2p1-7.el5 openais.i386 0:0.80.3-7.el5 openldap.i386 0:2.3.27-8 openldap-clients.i386 0:2.3.27-8 openssh.i386 0:4.3p2-24.el5 openssh-clients.i386 0:4.3p2-24.el5 openssh-server.i386 0:4.3p2-24.el5 pam.i386 0:0.99.6.2-3.26.el5 pam_krb5.i386 0:2.2.14-1 parted.i386 0:1.8.1-12.el5 pkinit-nss.i386 0:0.7.3-1.el5 pm-utils.i386 0:0.99.3-6.el5.centos.17 policycoreutils.i386 0:1.33.12-12.el5 popt.i386 0:1.10.2-47.el5 prelink.i386 0:0.3.9-2.1 redhat-artwork.i386 0:5.1.0-26.el5.centos redhat-logos.noarch 0:4.9.99-8.el5.centos redhat-lsb.i386 0:3.1-12.3.EL.el5.centos redhat-menus.noarch 0:6.7.8-2.el5 rgmanager.i386 0:2.0.31-1.el5.centos rhpxl.i386 0:0.41.1-1.el5 ricci.i386 0:0.10.0-6.el5.centos.1 rpm.i386 0:4.4.2-47.el5 rpm-libs.i386 0:4.4.2-47.el5 rpm-python.i386 0:4.4.2-47.el5 sabayon.i386 0:2.12.4-5.el5 sabayon-apply.i386 0:2.12.4-5.el5 sysklogd.i386 0:1.4.1-40.el5 system-config-cluster.noarch 0:1.0.50-1.3 system-config-kdump.noarch 0:1.0.12-1.el5 system-config-network.noarch 0:1.3.99-2.el5 system-config-network-tui.noarch 0:1.3.99-2.el5 tcp_wrappers.i386 0:7.6-40.4.el5 tcpdump.i386 14:3.9.4-11.el5 tog-pegasus.i386 2:2.6.1-2.el5 udev.i386 0:095-14.9.el5 vixie-cron.i386 4:4.1-72.el5 xorg-x11-drv-evdev.i386 1:1.0.0.5-3.el5 xorg-x11-drv-vesa.i386 0:1.3.0-8.1.el5 xorg-x11-server-Xnest.i386 0:1.1.1-48.26.el5 xorg-x11-server-Xorg.i386 0:1.1.1-48.26.el5 ypbind.i386 3:1.19-8.el5 yum.noarch 0:3.0.5-1.el5.centos.5 yum-updatesd.noarch 0:3.0.5-1.el5.centos.5
Replaced: sysreport.noarch 0:1.4.3-10.el5
Complete!
[root@localhost ~]# shutdown -r now

Broadcast message from root (xvc0) (Tue Dec 4 11:51:48 2007):

The system is going down for reboot NOW!
INIT: Switching to runlevel: 6
INIT: Sending processes the TERM signal
Shutting down Cluster Module - cluster monitor: [ OK ]
Shutting down ricci: [ OK ]
Stopping HAL daemon: [ OK ]
Shutting down oddjobd: [ OK ]
<<略>>
Unmounting pipe file systems:
Unmounting file systems:
Please stand by while rebooting the system...
md: stopping all md devices.
Restarting system.
.
[root@Dom0 ~]# xm console DomU
Linux version 2.6.18-53.1.4.el5xen (mockbuild@builder6.centos.org) (gcc version 4.1.2 20070626 (Red Hat 4.1.2-14)) #1 SMP Fri Nov 30 01:53:35 EST 2007
BIOS-provided physical RAM map:
Xen: 0000000000000000 - 0000000004800000 (usable)
0MB HIGHMEM available.
<<略>>
Making device-mapper control node
Scanning logical volumes
connect() failed on local socket: Connection refused
WARNING: Falling back to local file-based locking.
Volume Groups with the clustered attribute will be inaccessible.
Reading all physical volumes. This may take a while...
Found volume group "VolGroup00" using metadata type lvm2
Activating logical volumes
connect() failed on local socket: Connection refused
WARNING: Falling back to local file-based locking.
Volume Groups with the clustered attribute will be inaccessible.
Volume group "WARNING:" not found
Volume group "Falling" not found
Volume group "back" not found
Volume group "to" not found
Volume group "local" not found
Volume group "file-based" not found
Volume group "locking." not found
Volume group "Volume" not found
Volume group "Groups" not found
Volume group "with" not found
Volume group "the" not found
Volume group "clustered" not found
Volume group "attribute" not found
Volume group "will" not found
Volume group "be" not found
Volume group "inaccessible." not found
2 logical volume(s) in volume group "VolGroup00" now active
Creating root device.
Mounting root filesystem.
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
Setting up other filesystems.
Setting up new root fs
no fstab.sys, mounting internal defaults
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /sys
audit(1196736762.418:2): policy loaded auid=4294967295
INIT: version 2.86 booting
Welcome to CentOS release 5 (Final)
Press 'I' to enter interactive startup.
Setting clock (localtime): Tue Dec 4 11:52:52 JST 2007 [ OK ]
Starting udev: [ OK ]
Setting hostname localhost.localdomain: [ OK ]
Setting up Logical Volume Management: connect() failed on local socket: Connection refused
WARNING: Falling back to local file-based locking.
Volume Groups with the clustered attribute will be inaccessible.
2 logical volume(s) in volume group "VolGroup00" now active
[ OK ]
Checking filesystems
Checking all file systems.
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a /dev/VolGroup00/LogVol00
/dev/VolGroup00/LogVol00: clean, 81877/876960 files, 494367/876544 blocks
[/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 -a /dev/xvda1
/boot: clean, 43/26104 files, 21540/104388 blocks
[ OK ]
Remounting root filesystem in read-write mode: [ OK ]
Mounting local filesystems: [ OK ]
Enabling local filesystem quotas: [ OK ]
Enabling /etc/fstab swaps: [ OK ]
INIT: Entering runlevel: 3
Entering non-interactive startup
Starting monitoring for VG VolGroup00: connect() failed on local socket: Connection refused
WARNING: Falling back to local file-based locking.
Volume Groups with the clustered attribute will be inaccessible.
2 logical volume(s) in volume group "VolGroup00" monitored
[ OK ]
Checking for hardware changes [ OK ]
Applying ip6tables firewall rules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_ns [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0:
Determining IP information for eth0... done.
[ OK ]
Starting restorecond: [ OK ]
Starting auditd: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
Starting irqbalance: [ OK ]
Starting mcstransd: [ OK ]
Starting portmap: [ OK ]
Starting setroubleshootd: [ OK ]
Starting RPC idmapd: [ OK ]
Starting system message bus: [ OK ]
Mounting other filesystems: [ OK ]
Starting autofs: Loading autofs4: [ OK ]
Starting automount: [ OK ]
[ OK ]
Starting snmpd: [ OK ]
Starting sshd: [ OK ]
Starting ntpd: [ OK ]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
Starting console mouse services: [ OK ]
Starting crond: [ OK ]
Starting xfs: [ OK ]
Starting anacron: [ OK ]
Starting atd: [ OK ]
Starting HAL daemon: [ OK ]
Starting oddjobd: [ OK ]
Starting Cluster Module - cluster monitor: Setting verbosity level to LogBasic
[ OK ]
Starting ricci: [ OK ]

CentOS release 5 (Final)
Kernel 2.6.18-53.1.4.el5xen on an i686

localhost.localdomain login: root
Password:パスワード
Last login: Tue Dec 4 11:30:04 from SomeHost
[root@localhost ~]# rpm -q centos-release
centos-release-5-1.0.el5.centos.1
[root@localhost ~]# cat /etc/redhat-release
CentOS release 5 (Final)
[root@localhost ~]#

2007/11/28

続々・Red Hat Cluster: kernel-xenにバグか?

Red Hat Cluster: kernel-xenにバグか?』および『続・Red Hat Cluster: kernel-xenにバグか?』で報告したバグだが、どうも修正されたようだ。
によると、kmod-gfsにバグがあり、新バージョンで解決されるらしい。
検証して報告したい。
#最近「~したい」「~したい」ばかりで全然進んでない。申し訳ない。

追記(2008/2/24):
CentOS 5.1ではこの問題は解決している。以下の記事を参照。
Red Hat Cluster: CentOS 5.1上でRHCSを使ってみる

2007/11/22

VLANとXenを組合わせて使う・その5・仮想ブリッジが多い場合

以前、『VLANとXenを組合わせて使う』シリーズで、VLANとXenを組み合わせて使う方法を紹介した。
この中の『VLANとXenを組合わせて使う・その3・Xenネットワーク』で、
が、/etc/xen/scripts/network-bridgeの中に
# vifnum     Virtual device number to use (default 0). Numbers >=8
# require the netback driver to have nloopbacks set to a
# higher value than its default of 8.
とあるように、カーネル変数の変更が必要らしいが、試していない。悪しからず。
と書いた。このvifnumとは、Xenドメイン間を接続する仮想ブリッジの番号で、これはデフォルトでは、最大で8までしか使用できない…と書いてあるが、実際にCentOS 5で試してみると、vifnum=4までしかブリッジを作成できなかった。

では、これを増やすにはどうすればよいか?CentOS 5では(ということは、RHEL 5でも(未確認))netbackドライバは、カーネルモジュールとして組み込まれている(modprobe -lで確認できる)ので、/etc/modprobe.confに次の行を追加し、再起動する。
options netloop nloopbacks=32
VLANとXenを組合わせて使う・その1
VLANとXenを組合わせて使う・その2・VLAN設定l
VLANとXenを組合わせて使う・その3・Xenネットワーク
VLANとXenを組合わせて使う・その4・DomUインストール
VLANとXenを組合わせて使う・その5・仮想ブリッジが多い場合

2007/11/14

Xen DomUインストールでAnaconda Kickstartを使う

RHELやCentOSをインストールしたことのある人は、インストーラAnacondaのお世話になっているはずだ。Anacondaによるインストールでは通常、対話的にインストールパラメータを指定していく。
これはこれでユーザに優しい仕組みだが、同じ設定で何台もOSをインストールしたり、少しづつインストールパラメータを変えながら繰り返しインストールしたりする場合には、かえって煩雑で不便だ。それを解消する方法がKickstartだ。
Kickstartのもっとも簡単な利用方法は、設定ファイルks.cfgをフロッピーディスクに入れておき、これをインストールディスク起動時に読み込ませる方法だろう。インストールディスクからの起動時、boot:プロンプトが表示されたら、次のように入力する(未検証)
boot: linux ks=floppy
詳しくは、Stray Penguinの記事を参照して欲しい(先達はあらまほしきことなり。ありがたや)

さて、本題。では、XenのDomUをインストールするときにはどうすればいいのか?DomUのインストーラ、virt-installプログラムのオプション--extra-argsオプションを使ってAnacondaにパラメータを渡せばよい。例えば、
  • ローカルレポジトリ: http://centos.repository.localdomain/centos/5/os/i386
  • Kickstart設定ファイル: http://centos.repository.localdomain/centos/5/DomU-ks.cfg
を元を使用する場合、以下の様に実行する。
# virt-install --name=node01 --uuid=`uuidgen` --ram=256 --vcpus=1 \
--file=/dev/VolGroup00/LogVolNode01 \
--nographics --paravirt \
--location=http://centos.repository.localdomain/centos/5/os/i386 \
--extra-args='ks=http://centos.repository.localdomain/centos/5/DomU-ks.cfg'

さて、ここまでKickstartの設定ファイルks.cfgの内容については触れてこなかった。詳しくは、マニュアルを参照して欲しいが、実際に例を見てみるのが早い。普通にCentOSやFedora、RHELをインストールすると、そのときのインストールパラメータが、Kickstart設定ファイルの形式で、/root/anaconda-ks.cfgに保存されている。自分が対話的に指定した内容とこれを照らし合わせながら眺めてみると、直感的に理解できるはずだ。

LVMを利用している場合には、
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --all --drives=xvda
#part /boot --fstype ext3 --size=100 --ondisk=xvda
#part pv.100000 --size=0 --grow --ondisk=xvda
#volgroup VolGroup00 --pesize=32768 pv.100000
#logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=272 --grow --maxsize=544
#logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
の様なコメントアウトされた部分が見つかる。コメントを読むと、そのままでは動かないような記述だが、ディスク全体を初期化する(clearpart --all)ような場合や、パーティションを変更しない場合は、問題なく動作する。必要な部分をコメントアウトして使う。

ちょっと予告: 上の例の中で利用したローカルレポジトリ環境(参考)や、これ利用してPXEインストールする環境
(参考)の構築は結構手間なのだが、Cobblerというツールを利用すると簡単にできるようだ。検証でき次第、ここで報告したい。

2007/11/12

続・Red Hat Cluster: kernel-xenにバグか?

Red Hat Cluster: kernel-xenにバグか?』でクラスタ/DLM関連のバグを指摘した。これはどうも、CentOS Bug ID 0002416 と同じバグのようだ。#2416は、CentOS 4でのものだが、「kernel: Extra connection from node * attempted」というログが共通しているし、症状も似ているような気がする。

アカウントを取って報告してみるか…

追記(2008/2/24):
CentOS 5.1ではこの問題は解決している。以下の記事を参照。
Red Hat Cluster: CentOS 5.1上でRHCSを使ってみる

RHEL 5.1リリース! CentOS 5.1も近日中に

Red Hat Enterprise Linux 5.1 (RHEL 5.1)がリリースされた。

[rhelv5-announce] Red Hat Enterprise Linux 5.1 General Availability Announcement

と言うことは、われらがCentOSも一両週間中("in a couple of weeks")にリリースされるということ。

[CentOS] status of Centos 5.1?

今回のリリースは、仮想化関係の改良が盛り込まれているようなので、逐次ここでも検証していきたい。

他にも、このブログと関係のある更新がいくつか含まれている。
  • device-mapper-multipathからのインストールと起動が可能(Support for installation to and boot from dm-multipath)
  • IPMIとHPIの更新(IPMI and HPI updates)
  • IPMIドライバの更新(Driver updates include: ipmi)
2007/12/7(金)追記:
CentOS 5.0からCentOS 5.1へアップグレードする』を公開した。

2007/12/10(月)追記:
CentOS 5.0からCentOS 5.1へアップグレードする・補足』を公開した。

2007/11/07

Red Hat Cluster: kernel-xenにバグか?

Red Hat Cluster: GNBD, CLVM and GFS』シリーズが全然進んでいない。その言い訳。どうも、現時点で最新のカーネルkernel-xen-2.6.18-8.1.15.el5にはバグがあるようだ。一世代前のkernel-xen-2.6.18-8.1.14.el5ならば問題ない。
#Xen対応でないバニラカーネルでどうなのかは未確認。

シリーズの続きを書くべく、作業を進めていたのだが、クラスタの動作が安定しなかった。クラスタメンバを一斉に起動するような場合には問題なくクラスタが開始されるのだが、この後、各クラスタメンバの再起動を行うと、OS起動時にクラスタ関連のサービスが正常に起動されなかったり、最悪、OS起動時に停止してしまい、ログインプロンプトすら出ない、という現象に遭遇した。
クラスタメンバを一斉に起動し、クラスタが正常に起動した後、何度かクラスタメンバの再起動を繰り返していると、OS起動時に、
Welcome to  CentOS release 5 (Final)
Red Hat Enterprise Linux Server release 5 (Tikanga)
Press 'I' to enter interactive startup.
Setting clock  (localtime): Wed Nov  7 13:27:24 JST 2007 [  OK  ]
Starting udev: [  OK  ]
<<略>>
Starting RPC idmapd: [  OK  ]
Starting cluster:
Loading modules... DLM (built Oct 22 2007 09:34:27) installed
GFS2 (built Oct 22 2007 09:34:51) installed
done
Mounting configfs... done
Starting ccsd... done
Starting cman... done
Starting daemons... done
Starting fencing... done
[  OK  ]
Starting system message bus: [  OK  ]
Starting clvmd: dlm: got connection from 2
dlm: connecting to 1
dlm: got connection from 1
dlm: connecting to 1
[  OK  ]
の部分で停止してしまう。このとき、他のクラスタメンバ上では、
dlm: connecting to 3
dlm: got connection from 3
Extra connection from node 3 attempted
dlm: got connection from 3
の様なメッセージが表示される。
この状態から、停止しているノードをフェンスしたり、強制再起動したりすると、今度は、
Welcome to  CentOS release 5 (Final)
Red Hat Enterprise Linux Server release 5 (Tikanga)
Press 'I' to enter interactive startup.
Setting clock  (localtime): Wed Nov  7 13:37:28 JST 2007 [  OK  ]
Starting udev: [  OK  ]
<<略>>
Starting RPC idmapd: [  OK  ]
Starting cluster:
Loading modules... DLM (built Oct 22 2007 09:34:27) installed
GFS2 (built Oct 22 2007 09:34:51) installed
done
Mounting configfs... done
Starting ccsd... done
Starting cman... done
Starting daemons... done
Starting fencing...
ここで五分程停止する。おそらく、fencedの起動でタイムアウトまで待っているのだと思われる(/etc/init.d/cman中のFENCED_START_TIMEOUTの既定値は300[秒])
更にこの後、clvmdの起動に失敗する。
[  OK  ]
Starting system message bus: [  OK  ]
Starting clvmd: clvmd startup timed out
[FAILED]
Mounting other filesystems:  [  OK  ]
<<略>>
Starting Cluster Module - cluster monitor: Setting verbosity level to LogBasic
[  OK  ]
Starting Cluster Service Manager: [  OK  ]
Starting ricci: [  OK  ]

CentOS release 5 (Final)
Kernel 2.6.18-8.1.15.el5xen on an i686

ノード3 login:
このとき、別のクラスタメンバ上では、
[root@ノード2 ~]# cman_tool services
type             level name       id       state
fence            0     default    00010002 FAIL_ALL_STOPPED
[1 2 3]
dlm              1     clvmd      00010003 FAIL_STOP_WAIT
[1 2 3]
dlm              1     rgmanager  00020003 FAIL_STOP_WAIT
[1 2]
[root@ノード2 ~]#
の様になっている。正常ならば、
[root@ノード2 ~]# cman_tool services
type             level name       id       state
fence            0     default    00010002 none
[1 2 3]
dlm              1     clvmd      00010003 none
[1 2 3]
dlm              1     rgmanager  00020003 none
[1 2 3]
[root@ノード2 ~]#
のようになるはずだ。
ここから、クラスタメンバを停止しようとすると、正常に停止できない。
[root@ノード3 ~]# shutdown -h now

Broadcast message from root (xvc0) (Wed Nov  7 13:50:09 2007):

The system is going down for system halt NOW!
INIT: Switching to runlevel: 0
INIT: Sending processes the TERM signal
[root@dノード3 ~]# Shutting down Cluster Module - cluster monitor: [  OK  ]
Shutting down Cluster Service Manager...
Waiting for services to stop:
この部分で停止したままになってしまう。これは、すべてのクラスタメンバで共通の現象だ。こうなると、すべてのノードを一斉に停止・起動するしかない。
これは、サービスrgmanagerを停止中に、デーモンclurgmgrdが「Uninterruptible sleep」状態(ps(1)参照)になっていて、シグナルに応答しなくなることが原因。追求できたのはここまで。

カーネルのバージョン2.6.18-8.1.15.el5に関しては、RHSA-2007:0940-7に更新情報が記載されていて、Distributed Lock Manager(DLM)に関する修正がなされたことが解る。この修正で虫が憑いたのではないだろうか。
当面、2.6.18-8.1.14.el5で検証を行う。しかし、2.6.18-8.1.15.el5への修正は、深刻度「重要(Important)」に分類されているのが頭の痛いところだ。

2007/11/12追記:
続・Red Hat Cluster: kernel-xenにバグか?』に情報を追加した。

追記(2008/2/24):
CentOS 5.1ではこの問題は解決している。以下の記事を参照。
Red Hat Cluster: CentOS 5.1上でRHCSを使ってみる

2007/11/06

Red Hat Cluster: 予告編+xの補足

Red Hat Cluster: 予告編+x』に
RHEL 5のマニュアルを見ながら手順通りやっても、CentOSではエラーになってしまう。
と書いた。この解決策として、
原因は、/etc/redhat-release。クラスタメンバ側でこれをRHEL5だ、と詐称しなければ上手く動作しないようだ。
という方法を紹介した。

これはこれでいいのだが、この状態で`yum update'を実行するなどしてカーネルを更新すると、/boot/grub/grub.conftitle行が以下の様に二行になってしまう。
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS
Red Hat Enterprise Linux Server (2.6.18-8.1.15.el5xen)
root (hd0,0)
kernel /vmlinuz-2.6.18-8.1.15.el5xen ro root=/dev/VolGroup00/LogVol00 console=xvc0 rhgb

この状態でマシンを再起動すると、起動時のGRUB画面で、カーネルのバージョンが表示されない、という弊害が発生する(OSは問題なく起動できる)。以下は、XenのDomUを起動したときの例:

注意深く見れば、この画面より前に
WARNING:root:Unknown image directive Red
というメッセージを発見できるかもしれない。

これは、当該部分を適切に修正すれば解決できる。
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-8.1.15.el5xen)
root (hd0,0)
kernel /vmlinuz-2.6.18-8.1.15.el5xen ro root=/dev/VolGroup00/LogVol00 console=xvc0 rhgb

なお、この修正を施した状態でも、OS起動時に、
INIT: version 2.86 booting
SELinux: initialized (dev usbfs, type usbfs), uses genfs_contexts
Welcome to  CentOS release 5 (Final)
Red Hat Enterprise Linux Server release 5 (Tikanga)
Press 'I' to enter interactive startup.
Setting clock  (localtime): Tue Nov  6 18:17:59 JST 2007 [  OK  ]
Starting udev: [  OK  ]
の様に、OSの名前が二行になってしまうが、これは我慢していただきたい。

`xm create -c'でコンソールに接続できない・解決(?)編

記事『`xm create -c'でコンソールに接続できない』の解決…になっているかな、一応…という方法を発見したので、メモしておく。前の記事に、
ターミナルタイプがVT100(環境変数TERM=vt100の場合など)のとき、この不具合が起こる。
と書いたのだが、だったら、これを変更すればよい、というだけ。例えば、ターミナルタイプをxtermに偽装する。つまり、
# TERM=xterm xm create -c DomU名
の様に実行すればよい。ターミナルがVT100互換なら、これでも大きな問題にはならないはずだ。
あるいは、手元でX Windowを動かして、適当なターミナルからログインするという手もあるだろう。

2007/10/31

SELinuxのアクセス制御をデーモン単位に停止

SELinuxをすべて停止してしまう方法は、前の記事に書いた。では、デーモン毎にSELinuxのアクセス制御の有効・無効を変更するにはどうすればよいか?
コマンドsetsebool(8)を使用して、該当するブーリアン変数を適宜変更すればよい。例えば、httpdに関してSELinuxのアクセス制御を変更するには、以下の通り実行する(環境にもよるが、実行には数秒かかる)
# setsebool -P httpd_disable_trans=1
#
なお、-Pオプションは、再起動後もこの設定を保持せよ(persistant)、といことを指定するためのもの。
これ以外のデーモンについては、getsebool(8)コマンドを使って調査する。
# getsebool -a
NetworkManager_disable_trans --> off
allow_cvs_read_shadow --> off
<<略>>
oddjob_disable_trans --> off
oddjob_mkhomedir_disable_trans --> off
<<略>>
ypxfr_disable_trans --> off
zebra_disable_trans --> off
#
例えば、oddjobに関してはoddjob_disable_transおよびoddjob_mkhomedir_disable_transが関係しているだろうことが判る。

Google Analyticsをつらつらと眺めていると、検索語順位に『selinux 停止』というのが割と上位に来ている。これはおそらく、『Red Hat Cluster: SELinuxを停止』にヒットしているんだろうと思うが、需要が多いようなので、これ関連で一本書いてみた、というわけだ。

2007/10/30

GDMログイン画面のrestart・shutdownボタンを無効化

前に『GDMログイン画面からshutdownボタンを消す』という記事を書いた。
この方法は、CentOS 5(やRHEL 5(未確認))でも有効。
ただし、再起動・シャットダウンボタンの表示は消えない。これらのボタンを押すと、再起動・シャットダウンを確認するダイアログが表示され、これを承認すると、GDMのログイン画面が再起動されるようだ。
なんでやねん。

2007/10/29

PowerEdge 2650ではIPMIフェンス不能

以前の記事『OpenIPMI・その1・概要』で、気楽に
DRACもクラスタ(RHCS)のフェンス手段として使うことができたが、当然IPMIもフェンス手段として使うことができる。
と書いたが、うまく行かなかったことの報告。解決はできてない。

手元のDELL PowerEdge 2650にOpenIPMIを導入し、IPMIフェンスを試みたところ、失敗してしまう
$ fence_ipmilan -a サーバ名 -l IPMIユーザ名 -p "IPMIパスワード"
Rebooting machine @ IPMI:サーバ名...Failed
$
原因を探るべく、冗長メッセージオプション(-v)を付けて実行してみる。
$ fence_ipmilan -v -a サーバ名 -l IPMIユーザ名 -p "IPMIパスワード"
Rebooting machine @ IPMI:サーバ名...Spawning: '/usr/bin/ipmitool -I lan -H サーバ名 -U IPMIユーザ名 -P IPMIパスワード -v chassis power status'...
Failed
$
コマンドchassis power statusの実行に失敗しているらしい。実際にipmilanコマンドを直接実行してみると、
$ ipmitool -I lan -H サーバ名 -U IPMIユーザ名 -P "IPMIパスワード" chassis power status
Get Chassis Power Status failed: Invalid command
$ ipmitool -I lan -H サーバ名 -U IPMIユーザ名 -P "IPMIパスワード" chassis power off
Chassis Power Control: Down/Off
$
確かに、chassis power statusの実行には失敗したが、chassis power offは成功して、サーバの電源を切ることができた。

どうも、PowerEdge x6xx世代のファームウェアでは、chassis power statusが実装されていないようだ。
DELLのレポジトリには追随してるんだけどなあ。

2007/10/27

VISIO: スピードによって太さが変わるネットワークコネクタ

ラック図に使えるマスタシェイプの作り方シリーズに続いて、VISIOの小技。

Visioでネットワーク図を作るとき、機器と機器をコネクタで結ぶが、このコネクタにカスタムプロパティでスピード・デュプレックス・メディアタイプを定義し、スピードに従って線の太さが自動的に変化する機能を追加する。以下の通り作業する。
Visioでネットワーク図作っているところ。ファイアウォールとルータが動的コネクタで接続されている。
ツールバーからコネクタツールを選択し、機器間をドラッグすると、動的コネクタで接続される。
動的コネクタにカスタムプロパティを定義するために、カスタムプロパティウィンドウを表示する。メニューバーから「表示(V)」→「カスタム プロパティ ウィンドウ(M)」を選択する。
カスタムプロパティウィンドウが表示される。左の例では、動的コネクタが選択されているので、その動的コネクタのカスタムプロパティがカスタムプロパティウィンドウに表示されるはずだが、動的コネクタにはカスタムプロパティが定義されていないため、「カスタム プロパティなし」と表示されている。
動的コネクタ選択するためにクリックし、カスタムプロパティウィンドウを右クリックし、メニューから「プロパティの定義(D)」を選択する。
「カスタム プロパティの定義」画面が表示される。
スピード・デュプレックス・メディアタイプの三つを定義するが、まずはスピードから。以下の通り入力し、「新規作成(E)」ボタンをクリックする。
  • ラベル(L): Speed
  • 種類(T): 固定リスト
  • 書式(F): 10M;100M;1G;10G
  • 値(V): 100M
続いてデュプレックス。以下の通り入力し、「新規作成(E)」ボタンをクリックする。
  • ラベル(L): Duplex
  • 種類(T): 固定リスト
  • 書式(F): 全二重;半二十
  • 値(V): 全二重
最後にメディアタイプ。以下の通り入力し、「OK」ボタンをクリックする。
  • ラベル(L): Media Type
  • 種類(T): 固定リスト
  • 書式(F): T;SX;LX;ZX
  • 値(V): T
カスタムプロパティウィンドウに、新たに定義されたカスタムプロパティが表示されている。各プロパティは、ドロップダウンリストから値を選ぶことができる。
スピードによって線の太さが変わるよう、動的コネクタのシェイプシートを編集するため、動的コネクタを選択した状態で、メニューバーから「ウィンドウ(W)」→「シェイプシートの表示(S)」を選択する。
画面下部にシェイプシートが表示される。
シェイプシートの中の、「Custom Properties」セクションに注目。カスタムプロパティSpeedは、「Prop.Row_1」という名前で参照できることが判る。
シェイプシートを下へスクロールしていくと、「Line Format」セクションが見つかる。この中の「LineWeight」欄に、
=IF(Prop.Row_1="10M",0.25 pt,IF(Prop.Row_1="100M",0.72 pt,IF(Prop.Row_1="1G",1.5 pt,3 pt)))
と入力する。Prop.Row_1で参照されるカスタムプロパティSpeedの値によって、値を変えている。例えば、Speedが100Mのときは、0.72ptになる。
シェイプシート右上「×」をクリックし、シェイプシートを閉じる。
実際にスピードを1Gに変更してみよう。動的コネクタのカスタムプロパティSpeedのドロップダウンリストから1Gを選ぶ。
線が太くなる。


これでスピードによって太さの変わる動的コネクタを作成できた。
ただし、これをこのままコピーしてもこの機能は引継がれない。
機能を引継ぐためには、この動的コネクタを、ステンシルにマスタシェイプとして登録する必要がある。ステンシルへのマスタシェイプの登録は、前回の記事を参照して欲しい。

2007/10/25

VISIO: ラック図に使えるマスタシェイプの作り方・その4・マスタシェイプの作成

2012.9.6(木)追記:
ベクタ画像を利用する方法を公開した。ベクタ画像の方が一般に高画質が期待できる。

ラック図に使えるマスタシェイプの作り方シリーズの第四回。

ここでは、既存のマスタシェイプ「棚」に前回準備した正面図を貼り付けることで、新しいマスタシェイプを手抜き作成する。
手元にVisio 2003しかないので、Visio 2003での実行例となります。あしからず。
・Visioを起動すると「図面の種類の選択」画面が表示される。
「ネットワーク図」から「ラック図」を選択する。
新規ラック図が作成される。
右の「図形」ウィンドウから「ラックマウント式機器」ステンシルを選択する。
ステンシル内の「棚」マスタシェイプをドラッグし、図面上に置く。
・メニューバーから「ファイル(F)」→「図形(E)」→「個人用図形(W)」→「お気に入り」を選択する。
「お気に入り」ステンシルが「図形」ウィンドウに追加される。
先ほど図面上に置いた「棚」シェイプをドラッグし、このステンシル上に置く。
「お気に入り」ステンシルの編集の可否を問うダイアログが表示されるので、「はい(Y)」をクリックする。
棚シェイプが、新たにマスタシェイプとして「お気に入り」ステンシルに登録された(ステンシルの右上に編集中を示すフロッピーディスクアイコンが表示されている)
名前が「Master.番号」となっているので、これ変更する。マスタシェイプを右クリックし、メニューから「マスタシェイプ名を変更(R)」を選択する。
適切な名前に変更する。ここでは、「CentreCOM GS924S」とした。
続いて、このマスタシェイプを編集する。マスタシェイプをダブルクリックするか、マスタシェイプを右クリックし、メニューから「マスタシェイプの編集(E)」→「マスタシェイプの編集(E)」を選択する。
「お気に入り」ステンシル内の「CentreCOM GS924S」マスタシェイプを編集する画面が表示される。
この段階で正面図を置くこともできるが、それではラックへ接着できないマスタシェイプになってしまう。
そこで、この「棚」グループのさらに編集し、その中に画像を配置する。
まずは、このグループをクリックし、選択状態にする。画面左には、「図形のサイズ/位置/回転」ウィンドウが表示されるはずだ(「図形のサイズ/位置/回転」ウィンドウを非表示にしていなければ)
メニューバーから「編集(E)」→「棚を開く(O)」を選択する。
「棚」グループを編集する画面が表示される。
このグループの中に、前に作成した正面図を置く。
メニューバーから、「挿入(I)」→「図(P)」→「ファイルから(F)」を選択する。
「図の挿入」ウィンドウから前に作成した正面図を選択する。
正面図が挿入されるが、サイズが調整されていないため、大きく表示されている。
これを修正するために、画面左の「図形のサイズ/位置/回転」ウィンドウに正しいサイズを入力する。
もし「図形のサイズ/位置/回転」ウィンドウが表示されていなければ、メニューバーから「表示(V)」→「図形のサイズ/位置/回転(S)」を選択すればよい。
「図形のサイズ/位置/回転」ウィンドウに正しい幅と高さを入力する。メーカの製品情報ページからダウンロードしたカタログに「外形寸法 441(W)× 235(D)× 44(H)mm」と記載されているので、この数値を入力する。
正面図が、棚の図形からはみ出さないように位置を調整する。
調整後、画面右上の「×」をクリックして、編集を終了する。
マスタシェイプの編集画面に戻る。
マスタシェイプの編集を終了するため、画面右上の「×」をクリックする。
「CentreCOM GS924S」マスタシェイプの更新の可否を問うダイアログが表示されるので、「はい(Y)」をクリックする。
編集結果を保存するため、画面左「図形」ウィンドウ内の「お気に入り」ステンシル右上に表示されているフロッピーディスクアイコンをクリックする。
このマスタシェイプは、他のマスタシェイプと同様、図面上にドラッグして使うことができる。ラックへ接着することも可能だ。
これで一応は使えるラックマウント式マスタシェイプを作ることができた。
ただ、このマスタシェイプには、たのラックマウント式マスタシェイプに定義されている、「ネットワーク名」や「IPアドレス」等のカスタムプロパティが定義されていないし、ポートへコネクタを接続することもできない。
これらへの対処については、別の機会に解説する。

VISIO: ラック図に使えるマスタシェイプの作り方・その1・概要
VISIO: ラック図に使えるマスタシェイプの作り方・その2・ツールのインストール
VISIO: ラック図に使えるマスタシェイプの作り方・その3・正面図の準備
VISIO: ラック図に使えるマスタシェイプの作り方・その4・マスタシェイプの作成

VISIO: ラック図に使えるマスタシェイプの作り方・その3・正面図の準備

2012.9.6(木)追記:
ベクタ画像を利用する方法を公開した。ベクタ画像の方が一般に高画質が期待できる。

ラック図に使えるマスタシェイプの作り方シリーズの第三回。

PDFから正面図を切り出す。今回は、CentreCOM GS924Sを例に説明する。

まず、製品情報のウェブページにアクセスする。「データシートPDF」というリンクがあるので、ここをクリックし、PDFファイルgs900sc.pdfをダウンロードする。
Acrobat Readerなどで内容を確認すると、二ページ目の下の方に正面図が載っていることが確認できる。

PDFファイルをビットマップ画像に変換する。解像度は、印刷を考慮し、1200dpiとした(オプション-r 1200)。コマンドプロンプトを起動し、PDFファイルを保存したフォルダに移動し、以下の通り作業する。
C:作業フォルダ>gswin32c -q -r1200 -sDEVICE=png16m -dFirstPage=2 -dLastPage=2 -o gs900sc.png gs900sc.pdf
PCの性能にもよるが、実行には数分かかるかもしれない。
#古いバージョンでは、-o ファイル名オプションが実装されていない。その場合は、-sOutputFile=ファイル名 -dNOPAUSE -dBATCHで置き換えればよい。
出来上がった画像を確認する。
C:作業フォルダ>identify gs900sc.png
gs900sc.png PNG 9921x14031+0+0 DirectClass 8-bit 1.3mb 6.499u 0:07
横9921ドット、縦14,031ドットの画像であることが解る。
この大きさの画像の場合、(PCの性能にもよるが)通常のペイントソフトでは、編集困難だ。そこで、前処理としてこの画像を大雑把に切り出す。画像の座標は、左上が(0,0)だ。PDF画像を見ながら、適当な数値を決める。以下の例では、座標(4000,9000)を左上とする大きさ6000×1000の長方形領域を切り出そうとしている。実際には、5921×1000の領域が切り出されている。
C:作業フォルダ>convert -crop 6000x1000+4000+9000 gs900sc.png gs924s-0.png
C:作業フォルダ>identify gs924s-0.png
gs924s-0.png PNG 5921x1000+0+0 DirectClass 8-bit 52kb 0.290u 0:01
切り出された画像(gs924s-0.png)を、GIMPを使って更に精密に切り出す(もちろん、他の画像処理ツールを使ってもよい)。作成したgs924s-0.pngを開くと、画像が表示されない場合がある(その旨、警告が表示される)が、メニューバーから「画像(I)」 ->「 キャンバスをレイヤーに合わせる(I)」を実行すればよい。
切り出された画像には、まだ無駄な部分があるので、これを除去する。また、説明のための引き出し線も除去した方がいいかもしれない。これらの手順については、GIMPのマニュアルや、参考書を参照して欲しい。
切り出したところ。面取りの部分と引き出し線も除去している。
正面図の完成品。1200dpiの高品質画像だ。

VISIO: ラック図に使えるマスタシェイプの作り方・その1・概要
VISIO: ラック図に使えるマスタシェイプの作り方・その2・ツールのインストール
VISIO: ラック図に使えるマスタシェイプの作り方・その3・正面図の準備
VISIO: ラック図に使えるマスタシェイプの作り方・その4・マスタシェイプの作成

VISIO: ラック図に使えるマスタシェイプの作り方・その2・ツールのインストール

2012.9.6(木)追記:
ベクタ画像を利用する方法を公開した。ベクタ画像の方が一般に高画質が期待できる。

ラック図に使えるマスタシェイプの作り方シリーズの第二回。

VISIO上でマスタシェイプを作成する前に、まずラックマウント機器の正面図を準備する。正面図は、いろんな方法で作ることができる。Visioのシェイプを組合せて作るという方法もあるが、手間がかかり過ぎる。既にある画像を流用する方が楽だ。

たいていのラックマウント機器は、メーカのウェブページで画像が準備されている。この画像を使うという方法はあるのだが、いかんせんウェブページの画像は解像度が荒く、印刷には不向きだ。
機器が手元にあれば、デジタルカメラで撮影する方法もあり得る。しかし、意外にモノ撮りは難しい。歪みを補正したりするのも容易ではない(と言うほどでもないけど)

そこで、メーカのホームページに置いてあるPDFファイルの絵を流用することにする。

PDFから正面図を切り出すには、まず、必要なページをGhostscriptでビットマップ画像に変換する。印刷に堪える解像度にすると、ペイントツールでは扱いにくいサイズになるため、次にこれをImageMagickで大雑把に切り出す。最後にペイントツールを用いて精密に切り出す。ここではGIMPを用いた。

ここで使うソフトウェアのインストールについては、それぞれのリンク先を参考にして欲しい。
これらのソフトをインストールした後、コマンドプロンプト(cmd.exe)から利用できるよう、環境変数のPATHを修正する。
管理者権限でログインし、「スタート」ボタンから、「マイコンピュータ」を右クリックし、メニューから「プロパティ(R)」を選択する。
「システムのプロパティ」画面が表示されるので、「詳細設定」タブをクリックし、「環境変数(N)」ボタンを押す。
「環境変数」画面が表示されるので、「システムの環境変数(S)」の中の変数Pathを選択し、「編集(I)」ボタンを押す。
「システム編集の編集」画面が表示されるので、「変数値(V)」欄を編集し、次のパスを追加する。各パスは、セミコロン(;)で区切られている。
  • c:\program files\imagemagick-6.0.1-q16;
  • c:\gs\gs8.54\bin;c:\gs\gs8.54\lib;
バージョン番号は、インストールしたソフトウェアのバージョンによって変更する。ImageMagickのパスは、c:\WINDOWS\system32より前のに挿入しなければならない(c:\WINDOWS\system32\convert.exeとぶつかるため)

VISIO: ラック図に使えるマスタシェイプの作り方・その1・概要
VISIO: ラック図に使えるマスタシェイプの作り方・その2・ツールのインストール
VISIO: ラック図に使えるマスタシェイプの作り方・その3・正面図の準備
VISIO: ラック図に使えるマスタシェイプの作り方・その4・マスタシェイプの作成

VISIO: ラック図に使えるマスタシェイプの作り方・その1・概要

2012.9.6(木)追記:
ベクタ画像を利用する方法を公開した。ベクタ画像の方が一般に高画質が期待できる。

個人的には、Microsoft Visioはエンジニアの道具足りえる、すばらしいソフトだと評価している。仕事でもよく使っている。
というわけで、いつもはLinux系のことばかり書いている検閲Techだが、今回はVisioについて書いてみたい。今回の目標は、ラック図に使えるマスタシェイプを自前で作成することだ。

Visioを使って作成できる図にラック図がある。ラック図とは、サーバやネットワーク機器・その他を搭載した19インチラックの正面・背面からの見取り図のことだ。
ラック図で使用する機器等のマスタシェイプは、「ラックマウント式機器」ステンシルに含まれている。しかし、ここに含まれていないものもある。例えば、このステンシルにはファイアウォールが含まれていない。また、サーバは含まれているが、例えばIBM System x3455、というような機器固有のマスタシェイプは含まれていない。
これらについては、各メーカが無料でステンシルを配布している場合もある(参考)。しかし、メーカが準備していない機種についてはどうするか?有料のステンシルを購入するという手もあるが、ここでは自分で作る方法を紹介する。

手順は、次の段階に分かれる。
  1. ツールのインストール
  2. 正面図(あるいは背面図)の準備
  3. マスタシェイプの作成
正面図の準備では、PDFカタログから抽出する方法を紹介する。
マスタシェイプの作成では、「ラックマウント式機器」ステンシルの「棚」マスタシェイプを加工して作る方法を紹介する。

VISIO: ラック図に使えるマスタシェイプの作り方・その1・概要
VISIO: ラック図に使えるマスタシェイプの作り方・その2・ツールのインストール
VISIO: ラック図に使えるマスタシェイプの作り方・その3・正面図の準備
VISIO: ラック図に使えるマスタシェイプの作り方・その4・マスタシェイプの作成

2007/10/16

DRACユーザ・パスワードの変更

前の記事『Dell Remote Access ControllerへのTELNET接続』ではサラっと流してしまったが、DRACのユーザ名・パスワードが不明の場合どうするか、つまり、DRACのユーザ管理はどうなっているかについて。

DRACのユーザ管理は、OpenManage Server Administrator(OMSA)から管理するのが簡単だ。OMSAにアクセスするには、対象サーバへブラウザで、HTTPSによって1311番ポート(デフォルトでは。変更可能)にアクセスする(下の例では、SSHのポート転送機能を使ってWindows上のFirefoxから、サーバへアクセスしている)ここに、OSのユーザ名・パスワードを入力し、ログインすると、OMSAの画面が表示される。ここで、画面左のツリーから、「メインシステムシャーシ」→「Remote Access Controller」を選び、更に上のタブで「ユーザ」を選ぶと以下の画面が表示される。ここにDRACユーザの一覧が表示される。これはOSのユーザとはまったく別物。何も設定していなければ、rootのみが表示されているはずだ。
ユーザのパスワードを変更するには、ユーザ名をクリックし、「Remote Access Controllerユーザ」画面を表示させる。ここで、「パスワードの変更」チェックボックスをチェックし、「新しいパスワード」および「新しいパスワードの確認」にパスワードを入力する。続けて、画面下の「変更の適用」をクリックする。
すると、次のようなダイアログが表示される。「OK」を押下すると、「Remote Access Controller ユーザ」画面に戻る。
これでパスワード変更は完了だ。