月別アーカイブ: 2011年2月

DBの復旧作業

先日のPCフリーズし、相当な打撃を受けた。兎に角DBが完全にぶっ壊れた。
それにDBについてそんなに知識を持ってるわけでは無いので、復旧方法など知らない。
もう一回インストールし直せばどうにかなるかな、と思い再度DBにデータをインポートしようとしたが、、出来ない。
エラーログを参照しつつインターネットで調べると、、、、さっぱり分からない言葉が沢山。以下調べた内容。
———————————
MyISAM形式のデータベースのリペアは myisamchk コマンドで行います。
直前にMySQLがクラッシュして他のホストにてフェイルオーバーした場合などは、テーブルが破損する恐れがあります。

ファイルをチェックするには –fast オプションとファイル名。
$ myisamchk –fast /var/lib/mysql/sample/table.MYI

チェックでエラーになったファイルをリペアするには「–recover」を使います。
$ myisamchk –recover /var/lib/mysql/sample/table.MYI

リペアに失敗した場合は「–safe-recover」を試します。
$ myisamchk –safe-recover /var/lib/mysql/sample/table.MYI
—–
MySQLでInnoDBがクラッシュ

mysqlをセーフモードで立ち上げる
/usr/bin/mysqld_safe
STOPPING server from pid file /var/run/mysqld/mysqld.pid

mysqlのInnoDBを自動的に復旧する。
vi /etc/my.cnf
innodb-force-recovery = 4
———————————-
最終的にInnoDBを自動的に復旧する事でシステムが復旧した。
しかし。その後mysqldプロセスが高負荷でずっと立ち上がったまま、、。
結局またPCが完全にフリーズ。コレにはかなりテンパリました。
最初にデータを無理やり再インポートしたのがまずかったのかな?

そもそもの原因として、東芝PC_Qosmioは買った当初からフリーズを頻発する代物。
コレ普通に不良品なんじゃ、、、。

最終的には古い別のPCを使う事で何とか復旧させましたけどね。

リバースプロキシ

仮想化技術とPCの性能向上により、多数のサーバが建てられる様になった訳だが、
昔々から使っているOS(fedora5)はPHPやmySQLのバージョンが古くて、最近のソフトがなかなかインストール出来ない。
バージョンアップしようにもパッケージの配布もサポートも打ち切られている為、設定変更するのは非常に怖い(利用出来なくなるのが一番大打撃だから)。
そもそも開発ベースのOSをサーバ用途に使ったのが大いに間違いだったのだが、今更そんな事は気にしない。
何とかうまく最新バージョンのwebサーバに変更できないかと色々調べていたらリバースプロキシと言う物を発見した。

コレはグローバルIPを一つしかもっていないが2種類のwebサーバを立ち上げたい場合に使う方法で、サーバ内部にインストールした2種類のバージョンのPHPやSQLをそれぞれ別のバーチャルホストに割り当てたり、一つのバーチャルホストをLAN内の別のwebサーバにリダイレクトしたりする事が出来る。
今回はOS自体も最新の物に変更したい事と、ややこしい設定が必要ない事から後者の方法を取った。

ただし事前にある程度の設定を済ませている必要はある。
1.リダイレクト先のPCでプロキシサーバが立ち上がってる事。
2.リダイレクト元のPCでバーチャルホストの設定が済んでいる事。
apache等は当然立ち上がってる必要はあるが、大体上の通り。

そしてリダイレクト元のPCで下記の様にバーチャルホストの設定をするだけ。
・LAN内リダイレクト先のPC(192.168.88.222)にバーチャルホスト(ictmax.info)を割り当てた場合の例
―――――――-

ProxyPreserveHost On
ProxyPass / http://192.168.88.222/
ProxyPassReverse / http://192.168.88.222/
ServerName ictmax.info

―――――――-

非常に有効な手段だ。

mondorescue(Linux P2V)

先日VMwareESXiでのP2Vを行ったのだが、結局うまくいかなかった。
うまくいかない要素的には山ほど考えられる為、理由は分からない。
そもそもVMwarePlayer上の仮想マシンをESXiに変換しても、兎に角コンソールが真っ白で全然操作出来ない上、かろうじてネットワークが繋がってログインできても非常に動作が不安定で使い物にならない。
ちなみに環境は以下の通りだ。ESXi4を入れたかったのだがインストール途中で止まってしまう(VMPlayerの上だからかな?)為、今の所断念している。
Win7(64bit),VMPlayer2.5上のESXi3.5

そこで、mondorescueによるバックアップを試してみた。ちなみに物理マシンはFedora5。

① 必要なソフトを収集
wget http://ftp.riken.jp/Linux/fedora/core/5/i386/os/Fedora/RPMS/mkisofs-2.01.01.0.a03-3.i386.rpm
wget http://ftp.riken.jp/Linux/fedora/core/5/i386/os/Fedora/RPMS/cdrecord-2.01.01.0.a03-3.i386.rpm
wget http://ftp.riken.jp/Linux/fedora/core/5/i386/os/Fedora/RPMS/cdrecord-devel-2.01.01.0.a03-3.i386.rpm
wget ftp://ftp.mondorescue.org/fedora/5/i386/afio-2.5-0.fc4.i386.rpm
wget ftp://ftp.mondorescue.org/fedora/5/i386/buffer-1.19-0.fc4.i386.rpm
wget ftp://ftp.mondorescue.org/fedora/5/i386/mindi-2.0.7.5-1.fc5.i386.rpm
wget ftp://ftp.mondorescue.org/fedora/5/i386/mindi-busybox-1.7.3-1.fc5.i386.rpm
wget ftp://ftp.mondorescue.org/fedora/5/i386/mondo-2.2.7-1.fc5.i386.rpm
wget ftp://ftp.mondorescue.org/fedora/5/i386/mondo-doc-2.2.7-1.fc5.noarch.rpm
wget http://packages.sw.be/lzo/lzo-1.08-5.el5.rf.i386.rpm
wget http://packages.sw.be/lzop/lzop-1.03-1.el5.rf.i386.rpm

② インストール
sudo rpm -ivh mkisofs-2.01.01.0.a03-3.i386.rpm
sudo rpm -ivh cdrecord-2.01.01.0.a03-3.i386.rpm
sudo rpm -ivh cdrecord-devel-2.01.01.0.a03-3.i386.rpm
sudo rpm -ivh afio-2.5-0.fc4.i386.rpm
sudo rpm -ivh buffer-1.19-0.fc4.i386.rpm
sudo rpm -ivh mindi-2.0.7.5-1.fc5.i386.rpm
sudo rpm -ivh mindi-busybox-1.7.3-1.fc5.i386.rpm
sudo rpm -ivh mondo-2.2.7-1.fc5.i386.rpm
sudo rpm -ivh mondo-doc-2.2.7-1.fc5.noarch.rpm
sudo rpm -ivh lzo-1.08-5.el5.rf.i386.rpm
sudo rpm -ivh lzop-1.03-1.el5.rf.i386.rpm

③ バックアップ先のネットワークフォルダをマウント
・192.168.55.178配下のbackupフォルダをrootユーザで/tmp/backupにマウント
mount -t cifs //192.168.55.178/backup /tmp/backup -o username=root

④ バックアップ
・/tmp/backupにDVD用isoイメージを作成
sudo mondoarchive -Oi -g -L -N -s 4200m -d /tmp/backup -E /tmp/backup

と、ここまではまあうまくいった。
そして、バックアップ先のwin機vmwareplayer上で上記のバックアップイメージから立ち上げ、下記コマンドを打ち込む。
expert
mondorestore

・・・普通に立ち上げようとするとESXiでVMwareに移行した時と同じ様にディスクを読みこむ寸前にバチンと落ちてしまった。
しかし、、Grub(ブートローダ)の選択画面で古いバージョンのカーネルを選ぶとなぜかすんなり立ち上がった、、、。
何で?と思うと共に物理LinuxマシンがVMwarePlayerで綺麗に立ち上がった事に感激。
ESXiで不完全に立ち上がった時と違って動作もかなり快適である。
色々設定をいじっているのでまだどこに落とし穴があるか分かりませんが、まさしく完全再現。
一度VMwareで立ち上がってしまえば、後は本当にコピーコピーでやっていけるすばらしさ。
苦労した甲斐がありました。

VMware Infrastructure

最近仮想化の便利さに魅了され、すべてのシステムを性能の高いPCへオールインワンに収めようと試行錯誤していた。
殆どの物はvmware vConverterにより仮想変換出来ていたのだが、物理LinuxPC⇒仮想vmware playerだけがどうも対応してないらしく、出来ない。
半ばあきらめ気味だったのだが、vmware ESXiと言うvmware統合管理システムを使えば物理LinuxマシンをESXi上の仮想マシンへ仮想変換出来る事が分かった。
もうこの時点でかなりややこしいのだが、vmwareと言うシステムは仮想環境再現ソフトだけでvmware serverやらplayerやらfusionやら派生が多すぎて理解するのにかなり苦労する。
そんな中、vmware ESXiと言うのは仮想環境を仮想的に纏める様な感じのコレまた非常にややこしいソフト。
兎に角、インストールすれば分かるだろうとインストールしてみた。
そしてコレがまたインストールするだけでもかなーり一苦労な代物で、面倒なのでいちいち手順は書き起こしませんが、いろいろ模索した末、vmware player 2.5の上でESXi3.5を立ち上げる事が出来た。
そして初志の事である、物理LinuxマシンをESXiサーバの中へ仮想変換。
結果、無事成功したのだが、コンソールが真っ白。兎に角、移行した仮想Linuxマシンを操作出来ない。
どうにもこうにもならんのだが、ネットワークだけはdhcpにより繋がっていた為、sshでログインする。
よしよしうまくいった、、、とほくそ笑んだのも束の間、DBを使ったシステムが正常に立ち上がらない、、。
更に言うと、ESXiで外部USB HDDをマウントしないと、自分の環境では全く意味の無い感じなのだが、マウント出来ない、、。
と、ここまで文章だけでつらつらと書いているが、思い立ってからこの時点にたどり着くまで実に4ヶ月は経っている。
それまで何度もああ、もう別にいいや⇒暇だからやってみるか⇒もう別にいいや⇒の繰り返し。
そして、ESXiで外部USB HDDをマウントするにはVDI(VirtualDesktopInfrastracture)と言うソフトが必要で、、
そろそろまたもう諦めモードに突入してるのですが、ESXi上の仮想サーバはそれをvmware playerに変換する事が可能なので、vmware playerでUSBを認識すればバッチグーかと思い、現在vmware playerへデータ変換している所である。
結果、物理LinuxPC⇒ESXi仮想変換⇒vmware player仮想変換と言う、もうややこしすぎて、こんなの書いても本当に何がなんだか分かりませんよね。
てか、題名がVMware Infrastructureなのにそれを使ってる様子が全く無いんですが、ESXiがInfrastructureでありvSphere Hypervisorであり、、、は?ホントvmwareいい加減にしろ!と言いたい程、わけわかんねー代物ですよ。しっかし。こんな凄い物が無償なのでバカ驚きですな、、。