mySQL error with query INSERT INTO nucleus_NP_AccessAnalyze_UserTemp (blogid, userkey, ipaddr, hostaddr, accessdate) VALUES (1, 'jvKrsOUW', '3.145.111.125', 'ec2-3-145-111-125.us-east-2.compute.amazonaws.com', '20240506'): Data too long for column 'hostaddr' at row 1

PC Linux Samba+LDAP PDC&BDCサーバ構築(Debian Lenny 04) - 雑日記&ブログ

|雑日記&ブログ|雑Review|

雑日記&ブログ

ツイート

2010-07-30

PC Linux Samba+LDAP PDC&BDCサーバ構築(Debian Lenny 04)

昨日の、mdraidのリネームの続き。
PC Linux Samba+LDAP PDC&BDCサーバ構築(Debian Lenny 03)

以下の構成
IDE 80G*2 RAID1(ITE8212によるハードウェアRAID)
/dev/hda1:基本PT:ext3:8.0GB:root(/)
/dev/hda2:基本PT:ext3:2.0GB:var(/var)
/dev/hda3:基本PT:ext3:2.0GB:temp(/temp)
/dev/hda5:拡張PT:swap:1.0GB:スワップ領域
/dev/hda6:拡張PT:LVM:67.0GB:拡張ボリューム
LVG00:67GB
LV00:ext3:20GB:home(/home)
LV01:ext3:20GB:database(/home/database)
を、mdraidにする。

IDE 80G*2 RAID1(mdraidによるソフトウェアRAID)
/dev/md0:基本PT:ext3:8.0GB:root(/)
/dev/md1:基本PT:ext3:2.0GB:var(/var)
/dev/md2:基本PT:ext3:2.0GB:temp(/temp)
/dev/md3:拡張PT:swap:1.0GB:スワップ領域
/dev/md4:拡張PT:LVM:67.0GB:拡張ボリューム
LVG00:67GB
LV00:ext3:20GB:home(/home)
LV01:ext3:20GB:database(/home/database)
を、mdraidにする。
※:正直、スワップ領域をRAIDにする意味があるのかは微妙と思う。
  HDD故障時、書き込めないならもう一つに書き込めばいいので、わざわざRAIDにしなくてもいい気がするし。

参考にしたのは、Debian初心者のA2Z -8-


ところが、最後の最後、root領域(/)のRAID化だけがうまくいかない。
とりあえず、出来たところまで書いてみる。
※:ダメな理由が大体予想できるが、とりあえず、それは後日。

1.ITE RAID解除のために、BIOS上でRAID->IDEに変更
自分が使っているマザー(GA-8I945G Pro)は、IDE RAIDを使う場合、BIOS上でモードを選択しなければならない。
そのモードをIDEに変更するところからはじめた。

2.解除後起動
これで、/dev/hdaと/dev/hdbに・・・ならなかった。
/dev/hdcとなった。
これは、/dev/hdbは、DVD-ROMドライブが認識されてしまったから。
・・・いつか直そう。
とりあえずは、以下、/dev/hda /dev/hdcでRAIDにするために作業をする。
なぜか、参考サイトと同じだったので、少し気楽。

3./dev/hdcのパーティションのファイルタイプ変更
fdiskに慣れていればそれがいいんだけど、残念ながらまだ慣れて無いので、cfdiskで・・・
# cfdisk /dev/sdc
領域サイズは全て同じなので、ファイルタイプのみ変更する。
ファイルタイプは、Linux raid autodetect(FD)。
※:困ったことに、うちの場合、sargeからの環境を引き継いでいるため、文字化けしてしまう。
  近いうちにこれも修正したいなぁ・・・

4./dev/hdcでmdデバイス作成。
mdraidを作成する。
# mdadm -Cv /dev/md0 -l1 -n2 missing /dev/hdc1
# cat /proc/mdstat
一応、一回ごとに作成されているか確認する。
上のmdamdコマンドは、/dev/md0というデバイスを、RAID1、HDD2台、一台目は無し、二台目は/dev/hdc1を使う、という意味。
同様に他も作成する。
# mdadm -Cv /dev/md1 -l1 -n2 missing /dev/hdc2
# mdadm -Cv /dev/md2 -l1 -n2 missing /dev/hdc3
# mdadm -Cv /dev/md3 -l1 -n2 missing /dev/hdc5
ここまでは順調に行った。
# mdadm -Cv /dev/md4 -l1 -n2 missing /dev/hdc6
でリソースビジー発生。
不思議に思い、色々と確認したら、LVMは/dev/hdc6を参照していることがわかった。
# pvdisplay
結果、使用デバイスは/dev/hdc6。
ガーン!
逆に、/dev/hda6は利用していなかったので、急遽、cfdisk /dev/hdaで、/dev/hda6をLinux raid autodetectに変更し、そちらで作成。
# mdadm -Cv /dev/md4 -l1 -n2 /dev/hda6 missing
※:あとで気付いたのだが、SATAではLVMのままRAID作れてるので、別に変更しなくてもよかったかもしれない。

状態を確認する。
# cat /proc/mdstat
md0~md4、あと、SATAのmd10が出来ていることを確認した。

5.mdadm.conf作成
mdadm.confを作成し、使える状態にしないとならない。
というわけで、
# mdadm --detail --scan >> /etc/mdadm/mdadm.conf
とした。
その後、/etc/mdadm/mdadm.confを修正。
なぜかというと、既にmd10のデータがあるのに、また同じのが行に追加されてしまったこと、DEVICE行に、/dev/hda,/dev/hdcを追加する必要があるから。
# vi /etc/mdadm/mdadm.conf
DEVICE /dev/hda* /dev/hdc* /dev/sd[abcd]1
ARRAY /dev/md10 ~

保存し、viを終了

6.md0~md4で起動できるか確認
一応、元がハードウェアRAIDだったので、このまま起動できるか確認。
ただし、全てがmd~になってるのでそこを修正の必要がある。
直すのは、GRUBのメニューとfstabなど。
# mkdir /mnt/raid
# mount /dev/md0 /mnt/raid
# cp /etc/mdadm/mdadm.conf /mnt/raid/etc/mdadm/mdadm.conf
これでとりあえず、mdraidの情報はmd0に書き込まれた。
# vi /mnt/raid/etc/fstab
/dev/hda~を、/dev/md~に全て書き換え。
ただし、/dev/md4は、LVMを使ってるから変更の必要は無い。(/dev/mapper/LVG0-LV00などになってるから)
変更後、initrdの作成。これは、/dev/hd1に書かれる部分があるため、一応、/dev/hda1のinitrd.imgをバックアップ
# cp -a /boot/initrd.img-2.6.26-amd-2 /boot/initrd.img-2.6.26-amd-2.old2
# uname -r
# mkinitramfs -o /mnt/raid/boot/initrd.img-2.6.26-amd-2 2.6.26-amd-2
読み込みを/dev/md0から出来るように/dev/hdcに書き込む。
GRUBメニューの編集
# vi /boot/grub/menu.lst
このとき、/dev/hda1から読み込んでるメニューをコピーし、TITLEに、RAIDで起動するものとわかるように識別を入れ、kernelの読み込みはroot=/dev/md0となるように変更。

※:今考えてみれば、これでは動かない気がする。
  実際、以下の処理以降で、md0以外はmdraid出来たのだが結局md0起動は出来ずに時間切れ。
  失敗の原因はいくつかあるが、それは後回し。


7.md0から起動
PCを再起動。
メニューから、md0で起動するメニューを選択して起動。
ところが・・・
waring Waiting for root file system
で止まる・・・
失敗

8.もう一度/dev/hda1から起動
以下、仕方ないので、mdraidにしやすいところから。
まず、自分の場合、/dev/md4のLVM部分は、データベース部分が更新されている可能性があるが、ここはコピーで対応できるので、hdc6のdatabase部分を止めて、その後バックアップ作成、md4で再接続後に/dev/hdc6を追加すればいい。
次に、SWAP部分は、起動ごとに消える(はず)なので、これも、起動時に/dev/md3を利用すればいい。
また、/tmp部分も再起動で消える領域なので、これも、起動時に/dev/md2を利用すればいい。
つまり、
# vi /etc/fstab
で、
/dev/hda3->/dev/md2
/dev/hda5->/dev/md3
/dev/hda6->/dev/md4
とすればいい。
・・・と思ったら、/dev/hda6は無い。
そう、LVMなので、別の名称。
pvdisplayしてみると、やっぱ/dev/hdc6を利用中。
しょうがないので、MySQLを停止し、バックアップ、LVMを停止し、アンマウント、/dev/md4に/dev/hdc6を追加した。
# /etc/init.d/mysql stop
# /etc/init.d/lvm2 stop
# cp -r /home/database /home/share
# umount /dev/home
# umount /dev/database
# mdadm /dev/md4 -a /dev/hdc6
※:正直、/home以下のバックアップは取り忘れ。
  バックアップは取るべき。

/dev/md3はスワップ領域なので、一応swapでフォーマット。
# mkswap /dev/md3
/dev/md2は、/tmpで、ext3利用のため、これもフォーマット。
# mke2fs -j /dev/md2

9./dev/hda1から再起動で、md2,md3,md4が使えるのを確認
fstab変更により、/dev/md2 /dev/md3 /dev/md4が使えるのを確認する。
# cat /proc/mdstat
# df
md2,md3,md4が使われているのを確認する。
今回の場合、/dev/md4は完全にRAID化、/dev/md2,/dev/md3は縮退モードのはず。
/dev/md2,/dev/md3をRAID化する。
# cfdisk /dev/hda
/dev/hda3 /dev/hda5のタイプをLinux raid autodetect(FD)に変更
# mdadm /dev/md2 -a /dev/hda3
# mdadm /dev/md3 -a /dev/hda5
mdadmコマンドは連発で発行できるが、実際にRAIDによる処理は、順番に一つずつ行われるので、きちんと終了するまでshutdown等は待つこと。

10./dev/hda2をRAID1化して/dev/md1にする
/dev/hda2に利用している/varは、ログやメール関連があるので、リアルタイムに情報が変わっている。
そのため、順番を考えないといけない。
まずは、/dev/md1をフォーマット、次にfstabの書き換え、その後マウント、データをコピー。
最後に再起動。
# mke2fs -j /dev/md1
# vi /etc/fstab
/dev/hda2 /dev/md1に変更
# mount /dev/md1 /mnt/raid
# rsync -auHxv --delete /var/* /mnt/raid
ここで、/varディレクトリだけ、ということになっていないのを確認
# ls -la /mnt/raid
# umount /mnt/raid
再起動
# shutdown -r 0
再起動後、
# cat /proc/mdstat
# df
で、/dev/md1が縮退モードで動いていること、/dev/md1が/varにマウントされていることを確認。
/dev/hda2のタイプをLinux raid autodetectに変更
# cfdisk /dev/hda
/dev/md1に、変更した/dev/hda2を追加。
# mdadm /dev/md1 -a /dev/hda2

と、今、ここまで。

この後、mkinitramfsしなおして、再度/dev/md0で起動してみたが結果変わらず。
たぶん、mkinitramfsのオプションで、/dev/md0というRAIDを使うことを明示していないからじゃないかと考えられる。
また、他にもいくつかあるが、とりあえず、mkinitramfsのオプションを調べる。
ところが、どこにも引っかかってくれない。
諦めかけたそのとき、-rオプションでmkinitramfsを使っている事を書いているサイトを見つけた。
.com: Linuxサーバーのシステム部分だけRAID1する
.com: Linuxサーバーのシステム部分だけRAID1する その2
これを元に再度、設定をしなおしてみるつもり。

posted at 11:27:47 on 2010-07-30 by 宣伝中止! - Category: [PC]
ツイート

トラックバック

トラックバック
このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。 もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。.
ローカルトラックバック
PC Linux Samba+LDAP PDC&BDCサーバ構築(Debian Lenny 05): PC Linux Samba+LDAP PDC&BDCサーバ構築(Debian Lenny 04)の続き。 最悪の事態発生・・・ IDE RAIDをITE8212のハードウェアRAIDからmdraidに変換する処理で、最後の最後でGRUB設定を忘れて起動しなくなる、...
2010-08-02

コメント

sendenchuushi wrote:

とりあえず、/dev/md0で起動する方法は見つけた。
結局、モジュールのロードが終わってないから、/dev/md0を見つけられなかった模様。

# vi /etc/mkinitrd/modules
で、ite8212用モジュールのit82xを先に見つけるように、上の方に記述
# mkinitramfs -r /dev/md0 -o /mnt/raid/boot/initrd.img-2.6.26-amd64 2.6.26-amd64
で再作成
その後、再起動で、きちんと動作しました。

参考にしたサイト
linux-image-2.6.12 パッケージで SATA が認識されない(http://www.imc.cce.i.kyoto-...
2010-07-31 05:06:31

sendenchuushi wrote:

結局、
# mkinitramfs -r /dev/md0 -o /mnt/raid/boot/initrd.img-2.6.26-2-amd64 2.6.26-2-amd64
でOKらしい。

ところで、このときに、GRUB設定を忘れたために起動しなくなった。
さらに、それに伴って最悪の事態が・・・
次回のエントリで。
2010-08-02 10:13:23

コメントの追加

ランダム ピックアップ

[PC 電力消費量]
[PC ノートよりデスクトップを薦める理由]
[PC メインPCのHDD状況を見て]
[PC Linux Samba サーバ構築(Debian amd64インストール29)]
[PC ユーザアカウントの管理]
[PC ファイルシステム]
[PC Linuxで複合プリンタの利用]