server upgrade
液晶の壊れたDynabook SS 3440にDebian載せてもう4年くらい家のserverに使ってた。さすがにそろそろHDDあたりがやばいんじゃないかとserverを一新する事にした。あと、Windows Desktop PCに入れてあるiTunes libraryを多少安全なdiskに移したいというのも理由の一つ。(触れないくらいの温度で24時間稼動、、、)TeraStationの様な’NAS’として売ってる製品も考えたが、Linuxとしていじる時に普通のx86 PCの方が楽な気がしたのでそれは選択肢からはずした。PCは以下の構成。
- CPU: Intel E6300 (Core 2 Duo 1.86GHz, cache 2MB)
- mother board: Intel DG965WH
- memory: DDR2 5300 (667MHz) 1GB
- HDD: Maxtor DiamondMax21 320GB (SATA2) x4
用途的には世代遅れのCPUで十分だし電気も食わないんだけど、なぜか Core 2 Duo にしてしまった。LinuxはDebian Etch amd64 (kernel 2.6.17)でdiskはmd Raid5 + LVM2。
Debian installer boot from CD-ROM
まず、install packageをダウンロード。Debian の testing netinstall(netinst CD image amd64)。PATAに繋いだCD-ROMから無事にboot。しかし、bootしてからPATAのCD-ROMをkernelが認識してくれなくて、installerを先に進めない。。。ググると、これはSATAとPATAの混在システムで起きる問題っぽく、根本的解決方法が無いっぽい。しょうがないので、USB Flash memoryからinstallする方法で行く。
create bootable USB Flash memory
USB Flashをbootable deviceにするためにはUSBにアクセスできるLinux machineが必要。DynabookはあいにくUSB portが無い。しかしこれからDebianをinstallしようとしてるmachineがCD-ROMからbootだけはするのでその環境をbootable USB Flashを作るだけのために使えた。
- hd-mediaのboot.img.gzをダウンロード
- WindowsでもMacでも、とにかくbootに使うUSB Flash(fat file system)にboot.img.gzとCD-Rを作るときに使った .iso fileを書き込む。(Flash memoryの中身は後で全部消える事に注意)
- CD-Rでboot
- bootしたらUSB Flash memoryをUSB portに刺す
- Alt-F2でconsoleを出す
- 以下の操作でbootable USB flashを作る
# mount -t vfat /dev/sda1 /mnt (/dev/sd*は/var/log/syslogでどのdeviceが割り当てられたか確認) # cp /mnt/* /tmp (boot.img.gz と .isoを/tmpにコピー) # cd /tmp # umount /mnt # zcat boot.img.gz > /dev/sda (flash memoryは完全に上書きされる) # mount /dev/sda /mnt # cp /tmp/<.iso file name> /mnt # umount /mnt # reboot
- BIOSをUSB flashからbootするように変更
- USB flashからboot、そしてinstallerに従ってinstallを進める
そういえば、最初 iPod ShuffleをUSB Flashとして使ったんだけどbootしなくてだいぶ悩んでしまった。ShuffleはUSB Flashのようであって、単純なUSB Flashでは無いっぽい。。。でわざわざ新しくUSB Flashを買った。
さらにもう一つ。ICH8のEthernetは認識してくれなかったので、余ってたDECの21140 PCI cardを使ってる。(kernel 2.6.18からはICH8をサポートしてるらしい。)
Debian Installer: HDD partitioning issue
md RAID5+LVM2にroot以下、/boot以外の全部を置く方針。Debian installerもそれをサポートしてるような事が書いてあるのを見たんだがRAID5を設定するとinstallerがfailしてそれ以上は進めなくなる。妥協案として、一つのHDDに素でinstallし、そこからbootしたDebianで他の3つのHDDをRAID5+LVM2(HDDが一つ足りないdegraded arrayとして)に設定し、bootしたHDDの中身をdegraded arrayにコピーし今度はそっちをboot diskにしてbootした後、RAIDになって無いさっきの残り1つのHDDをRAID5に加える、、、という面倒な方法を取る。
こっから下はInstallerでRAID5+LVM2を作れるようになったら全くいらない作業。
- USB Flashからのinstallerの続きで、partitionのstep
- /dev/sda /dev/sdb /dev/sdc /dev/sddがある内、/dev/sddをinstallに使う。いずれにしても、後でこのdiskは消す事になるので、何も考えずにguidedの1 partitionでpartitionを切る。
- installを進めて、reboot
- cfdiskで以下の様にこれからRAIDにするdiskを切る
sda: sda1 320GB fd, sda2 300MB 82, sda3 200MB 83 bootable sdb: sdb1 320GB fd, sdb2 500MB 82 sdc: sdc1 320GB fd, sdc2 500MB 82
- まずHDD3個だけでRAID5 arrayを作る (sdd1 = missing)
# mdadm -v --create /dev/md0 --chunk=128 --level=raid5 --raid-devices=4 \ /dev/sda1 /dev/sdb1 /dev/sdc1 missing
- LVMでpartitionを切る
# pvcreate /dev/md0 # vgcreate vg00 /dev/md0 # lvcreate vg00 -n usr -L 10G # lvcreate vg00 -n tmp -L 10G # lvcreate vg00 -n home -L 90GB # lvcreate vg00 -n root -L 700MB # vgdisplay (Free PE を確認) # lvcreate vg00 -n var -l 200190
- partitionを切った結果を確認
# pvdisplay # vgdisplay # lvdisplay
- ext3でformat (stride size = raid chunk size / fs block size)
# mkfs.ext3 -b 4096 -R stride=32 /dev/vg00/usr # mkfs.ext3 -b 4096 -R stride=32 /dev/vg00/var # mkfs.ext3 -b 4096 -R stride=32 /dev/vg00/tmp # mkfs.ext3 -b 4096 -R stride=32 /dev/vg00/home # mkfs.ext3 -b 4096 -R stride=32 /dev/vg00/root # mkfs.ext3 /dev/sda3 # mkswap /dev/sda2 # mkswap /dev/sdb2 # mkswap /dev/sdc2
- /dev/sddの中身を全部RAID5+LVM2のpartitionにコピー
# mkdir /target # mount /dev/vg00/root /target # cd /target # mkdir usr home tmp var boot # mount /dev/vg00/usr /target/usr # mount /dev/vg00/home /target/home # mount /dev/vg00/tmp /target/tmp # mount /dev/vg00/var /target/var # mount /dev/sda3 /target/boot # tar clf - --preserve --same-owner --exclude=/proc/* --exclude=/sys/* / \ | (cd /target; tar xvpf - --preserve --same-owner)
- chroot
# chroot /target
- /etc/fstabのedit
/dev/mapper/vg00-root / ext3 defaults,errors=remount-ro 0 1 /dev/sda3 /boot ext3 defaults 0 2 /dev/mapper/vg00-home /home ext3 defaults 0 2 /dev/mapper/vg00-tmp /tmp ext3 defaults 0 2 /dev/mapper/vg00-usr /usr ext3 defaults 0 2 /dev/mapper/vg00-var /var ext3 defaults 0 2 /dev/sda2 none swap sw 0 0 /dev/sdb2 none swap sw 0 0 /dev/sdc2 none swap sw 0 0 # /dev/sdd2 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
- edit /boot/grub/menu.lst , 新しい/bootと/rootの位置に path を変更。/bootは/dev/sda3なのでroot (hd0,2), kernel root optionとして実際の/の位置 (表記が/dev/vg00/rootでは無く/dev/mapper/vg00-rootである事に注意)
title initrd.img-2.6.17-2-amd64 root (hd0,2) kernel /vmlinuz-2.6.17-2-amd64 root=/dev/mapper/vg00-root ro initrd /initrd.img-2.6.17-2-amd64 savedefault
- boot loader を MBR へ書き込み
# grub grub> device (hd0) /dev/sda grub> root (hd0,2) grub> setup (hd0) grub> quit
- rebootでRAID5+LVM2のシステムへ
$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vg00-root 705512 165024 504648 25% / udev 10240 68 10172 1% /dev devshm 500476 0 500476 0% /dev/shm /dev/sda3 186671 25734 151298 15% /boot /dev/mapper/vg00-home 92891128 5757032 82415504 7% /home /dev/mapper/vg00-tmp 10321208 154240 9642680 2% /tmp /dev/mapper/vg00-usr 10321208 1055296 8741624 11% /usr /dev/mapper/vg00-var 807112304 246857180 519256212 33% /var
- /dev/sddのpartitionを切る (sdd1はmd0の一部になるので、sda1,sdb1,sdc1と全く同じに)
sdd: sdd1 320GB fd, sdd2 500MB 82
- reboot (rebootしないと新しいpartition tableが認識されなかった。?)
- RAID5 recovery
# mdadm /dev/md0 --add /dev/sdd1 # cat /proc/mdstat Personalities : [raid5] [raid4]md0 : active raid5 sdd1[4] sda1[0] sdc1[2] sdb1[1] 936042624 blocks level 5, 128k chunk, algorithm 2 [4/3] [UUU_] [===>.................] recovery = 15.3% (47947392/312014208) finish=71.0min speed=61934K/sec unused devices: <none>
-
# mkswap /dev/sdd2
- /etc/fstabに追加
/dev/sdd2 none swap sw 0 0
kernel compile
root-on-LVM2-on-RAID5のときのinitrdの作り方が良く分らなかったんだが、–initrdをmake-kpkgで付けてcompileした新しいkernelで問題無くbootした。
# make-kpkg --initrd --revision=custom.1.0 kernel_image
[…] 320GB HDD x4 で RAID5 を組んでるが、2009年中には 1.5TB x3 くらいに組み替える事になるんではないかな。。 • • • […]
Pingback by Ippei813 Nikki»Blog Archive » lvm partition shrink/extend — December 27, 2008 @ 12:27 am[…] RAID、LVM2 の設定はほぼ最初と同じ。マザーボードに SATA が 6 port あるので、新しいハードディスクを […]
Pingback by Ippei813 Nikki»Blog Archive » 2TBx3 RAID5 — July 12, 2010 @ 9:42 pm