設定したことを忘れないように書いてあります。
pound用のサーバー証明書は、何度か作っているが、コマンドが間違っていたので修正。
誤 openssl req -x509 -newkey rs:1024 -keyout server.pem -out server.pem -days 365 -nodes 正 openssl req -x509 -newkey rsa:1024 -keyout server.pem -out server.pem -days 365 -nodes
当時はあっていたのが、コマンド拡張されたのかは不明。
以前から、バーチャルホスト兼ロードバランサとしてpoundを使っている。 自前でRPM Packageを用意しているのだが、システム更新の際に、2.6.1に以前と同様にPackageを作成したら、それ以降
pound: libgcc_s.so.1 must be installed for pthread_cancel to work pound: MONITOR: worker exited on signal 6, restarting...が出るようになった。調べてみると、異なるバージョンのlibgcc_s.so.1がLD_LIBRARY_PATHにあるということらしいが、findしてみてもlibgcc_s.so.1は一つしかない。 実害は無いようなので放置していたが、今回、パッケージを再作成することで対処した。
まずは、ソースの入手。と思い公式サイトにいってみると、公式のバージョンは2.6から2.5に巻き戻っている。 理由はわからないが、仕方がないので2.5でパッケージを作成する。今回は、公式にあったRedHat用SRPMパッケージを再作成してVine用Pakageを作成することとした。
公式サイトに示されていたサイトからPoundのパッケージをとってきて、rpm -ba pound.specで作成すればよいので楽ちん。 と思ったが、google-perftools-develが無いといわれる。
Vineのパッケージには、無いものなので、こちらも前記の場所からとってくる。 で、google-perftoolsのパッケージを作成しようとすると、今度はlibunwind-develがないと言われる。 こちらは、Vineのパッケージに存在するので、apt-getでインストール。
google-perftoolsは、最大パフォーマンスを発揮するためのアプリケーション開発ツールキットとのことだで、64ビット環境やマルチコアなどさまざまなプラットフォーム環境がある中、チューニングなども大変なため必要なライブラリなんだろうと思う。 まあ、うちの環境くらいでは特に性能差がでるようなことはないとは思うけど。だが一番の問題は、Vine 5.1には既にpoundのパッケージがあることに後で気がついたことだ。Vine使いの人は前記の問題は発生していなかったのかも。
写真の整理をするために、perl scriptを組んでいるのだが、再インストールした際にライブラリがリセットされてうまく動かなくなった。 エラーが出るたびに、必要なモジュールをインストールしたが、ImagerがJpegサポートされない形でインストールされてしまった。 format 'jpeg' not supported - formats bmp, ico, pnm, raw, sgi, tga available for reading at ... 原因はライブラリ(とヘッダファイル)がインストールされていないため。
CPAN上で、install Imagerとした際に冒頭に
CPAN.pm: Going to build T/TO/TONYC/Imager-0.73.tar.gz done. gif: includes not found - libraries not found ungif: includes not found - libraries not found jpeg: includes not found - libraries found png: includes not found - libraries not found tiff: includes not found - libraries not found freetype2: includes not found - libraries found freetype2: not available T1-fonts: includes not found - libraries not found TT-fonts: includes not found - libraries not found w32: includes not found - libraries not found EXIF support enabledとチェックが走るので、includes found - libraries foundとなるように、 libjpeg-develをインストールし、cpanでclean Imagerをおこなった後、force install Imagerで再インストールすることで、jpegサポートされるようになった。
次にraidからのbootを設定。 まずは、起動時にraidが認識されるように、mintrdを作成。 ちゃんとraidが認識されている状態で行わないと正しくファイルイメージが作成されない。 昨日の段階でうまくいかなかったのはちゃんとraidが認識されていなかったから。 次回以降は、アップデート時にrpmスクリプトが自動的に行ってくれるので一度行えばよいはず。
mkinitrd -v /boot/initrd-2.6.27-raid-43vl5.img 2.6.27-43vl5次にgrubの設定。/etc/grub.confを以下のように設定。
# menu.lst generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/sda2 # initrd /initrd-version.img default=0 timeout=5 title Vine Linux (Current kernel Raid) root (hd0,0) kernel /vmlinuz ro root=/dev/md1 rhgb resume=swap:/dev/sdb3 vga=0x314 splash=silent initrd /initrd-2.6.27-raid-46vl5.imgずっとliloを使ってきてきていたため、grubにはなれておらず、ここでも結構、はまってしまった。
この関係がわからず、
mount: error mounting /dev/root on /sysroot as ext3:Imvalid argument Setting up other filesystems. Setting up new root fs setuproot: moving /dev failed: No such file or directory no fstab.sys, mounting initernal defaults setuproot: error mounting /proc: No such file or directory setuproot: error mounting /sys: No such file or directory Switching to new root and running init. unmounting old /dev unmounting old /proc unmounting old /sys switchroot: mount failed: No such file or directory Kernel panic -not syncing: Attempted to kill init!を何度も見る羽目になった。
以上の設定をしたら、grubを起動ディスクに書き込む。 raidで起動する前であれば、grub-install /dev/sdaで書き込むことができるが、raid起動後は手動でgrubに書き込む必要がある。
[root@argus pc2m]# grub Probing devices to guess BIOS drives. This may take a long time. GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> device (hd0) /dev/sda device (hd0) /dev/sda grub> root (hd0,0) root (hd0,0) Filesystem type is ext2fs, partition type 0xfd grub> install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf grub> quit quitポイントはここもディレクトリの指定。(hd0,0)は/bootなので、/bootをrootとしたディレクト指定となる。 /dev/sdbに対しても同様に書き込みを行う。
クリーンインストールなので、Western digital WD15EADS-00P8B0などを買ってみた。 旧ディスクの片割れと、新ディスクでRAIDを組んで、普通にvine 5.0のインストーラからインストールしようとするが、フルRAIDのせいかうまくいかない。 起動したあと
md: md1 stopped. md: bindと出たのち、/dev/rootが見つからないといってkernel panicになってしまう。
なので、以前のようににインストールすることにした。 以前のようにというものの、自宅サーバははるか昔、 会社のサーバでも結構前なのですっかり忘れている。
こちらに、まずはVine 5.0をインストール。 その後、以前のディスクにRAID-1を組んでから、再度このディスクをRAIDデバイスとして追加するため、パーテションのサイズは新しいディスクと合わせておく必要がある。 また、パーテションタイプはfdに変更しておく。
インストールが完了したら、旧ディスクをRAIDデバイスとして作成。新ディスクが/dev/sda, 旧ディスクが/dev/sdbであるため、
mdadm --create /dev/md0 --level=1 --raid-device=2 /dev/sdb1 missing mdadm --create /dev/md1 --level=1 --raid-device=2 /dev/sdb2 missing mdadm --create /dev/md2 --level=1 --raid-device=2 /dev/sdb5 missing mdadm --create /dev/md3 --level=1 --raid-device=2 /dev/sdb6 missing mdadm --create /dev/md4 --level=1 --raid-device=2 /dev/sdb7 missingこんな感じで作成。/dev/sdbだけでRAIDデバイスを作成したのち、/dev/sdbを/opt以下にマウントする。 その上で必要なファイルを/dev/sdaからコピーしてあげる。こんな感じ。
mkdir -p {/opt/bin,/opt/boot,/opt/dev,/opt/etc,/opt/home,/opt/initrd,/opt/lib,/opt/lib64,/opt/media,/opt/misc,/opt/mnt,/opt/net,/opt/opt,/opt/proc,/opt/root,/opt/sbin,/opt/selinux,/opt/srv,/opt/sys,/opt/tmp,/opt/usr,/opt/var} \cp -ap {/bin,/boot,/dev,/etc,/home,/initrd,/lib,/lib64,/media,/misc,/net,/root,/sbin,/srv,/tmp,/usr,/var} /optで、次に、/opt/etc/fstabを修正。デフォルトではlabelになっているので、/dev/md に e2labelでラベルを設定しても動作するかもしれないが、 ややこしいので、デバイスを指定した。
/dev/md1 / ext3 defaults 1 1 /dev/md0 /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 /dev/md4 /home ext3 defaults 1 2 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 /dev/md2 /usr ext3 defaults 1 2 /dev/md3 /var ext3 defaults 1 2 /dev/sda3 swap swap defaults 0 0 /dev/sdb3 swap swap defaults 0 0以上完了したら、raidが正しく認識されているか再起動してみたが、さっきのように/dev/mdがstopしてしまう。 どうやら古いmdadm.confが残っていたためのようで mdadm.confを再作成したら問題なくなった。