Version 5 (modified by root, at 2015-04-21T09:48:11Z) (diff) |
---|
если в dc работают инвалиды
синопсис
возникла необходимость арендовать сервер без ip-kvm в датацентре, по всей видимости, не предназначенном для аренды с соответствующим уровнем специалистов. сервер представляет из себя обычную банку с двумя винтами с обычным sata контроллером без поддержки raid1, который для надёжности получить, тем не менее хотелось бы. даже несмотря на выданный образ centos 6.6 с kickstarter эти специалисты умудрились установить от него /boot на первый диск, а /root через lvm на второй диск, заняв его полностью.
- как всё это выглядело:
первый диск:
Disk /dev/sda: 500.1 GB, 500107862016 bytes 225 heads, 26 sectors/track, 166969 cylinders Units = cylinders of 5850 * 512 = 2995200 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x0007a041 Device Boot Start End Blocks Id System /dev/sda1 * 1 195 568320 83 Linux
второй диск:
Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x0009c1ca Device Boot Start End Blocks Id System /dev/sdb1 1 60802 488385536 8e Linux LVM
pvdisplay:
[root@server ~]# pvdisplay --- Physical volume --- PV Name /dev/sdb1 VG Name vg_main PV Size 465.76 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 119234 Free PE 0 Allocated PE 119234 PV UUID AWo7Gx-kM1o-6ADb-Gl4Q-QyWy-tHTX-4Wze8c
и mount:
[root@server ~]# mount /dev/mapper/vg_main-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
на этом помощь специалистов я решил остановить, чтобы не сделать ещё хуже и привести всё это в желаемый формат уже своими силами.
к слову, как я ни пытался повторить этот фокус со своим kickstarter - у меня так и не получилось.
конфигурирование
d0=/dev/sda; d1=/dev/sdb vg=vg_md; r=lv_r; s=lv_swp r0=/dev/md10; r1=/dev/md11 yum install -y dump cd /boot tar --create --file /root/boot.tar . cd umount /boot dd if=/dev/zero of=${d0} bs=1048576 count=128
содержимое следующих строчек можно получить, создав все разделы через cfdisk ${d0} с красивыми графическим интерфейсом, а потом экспортировать их через sfdisk -d ${d0}.
sfdisk ${d0} << EOF unit: sectors 0:start=63, size=1076292, Id=fd, bootable 0:start=1076355, size=65111445, Id=fd EOF mdadm --create ${r0} \ --force \ --level=1 \ --metadata=0.90 \ --raid-devices=1 \ ${d0}1 mdadm --create ${r1} \ --force \ --level=1 \ --metadata=0.90 \ --raid-devices=1 \ ${d0}2 printf "MAILADDR root\n" >/etc/mdadm.conf mdadm --examine --scan >>/etc/mdadm.conf mke2fs -t ext4 -m 1 -L boot ${r0} sed -ri "s#.+/boot#LABEL=boot /boot#" /etc/fstab mount /boot cd /boot tar xpf /root/boot.tar pvcreate ${r1} vgcreate ${vg} ${r1} lvcreate -L 16G -n ${s} ${vg} lvcreate -l 100%FREE -n ${r} ${vg} mkswap /dev/${vg}/${s} mke2fs -t ext4 -m 1 /dev/${vg}/${r} mount /dev/${vg}/${r} /mnt cd /mnt dump -a0f - / | restore -rf - sed -i " s#/dev/mapper/vg_main-lv_root#/dev/mapper/${vg}-${r}#; s#vg_main/lv_root #${vg}/${r}#; s# rd_LVM_LV=vg_main/lv_swap##; s#rd_NO_MD ## " \ /boot/grub/grub.conf sed -i " s#/dev/mapper/vg_main-lv_root#/dev/mapper/${vg}-${r}#; s#/dev/mapper/vg_main-lv_swap#/dev/mapper/${vg}-${s}# " \ /mnt/etc/fstab printf "(hd0) ${d0}\n(hd1) ${d1}\n" >/boot/grub/device.map grub-install --root-directory=/ ${d0} grub-install --root-directory=/ ${d0}1 dracut -f reboot
если всё было сделано правильно, то сервер загрузится уже с переразбитого первого диска. останется разбить второй диск и добавить его разделы в зеркала.
lvremove -f vg_main vgremove vg_main pvremove ${d1}1 dd if=/dev/zero of=${d1} bs=1048576 count=128 sfdisk ${d1} << EOF unit: sectors 0:start=63, size=1076292, Id=fd, bootable 0:start=1076355, size=65111445, Id=fd EOF mdadm --grow ${r0} \ --raid-devices=2 \ --add ${d1}1 mdadm --grow ${r1} \ --raid-devices=2 \ --add ${d1}2 grub-install --root-directory=/ ${d1} grub-install --root-directory=/ ${d1}1
ну вот, теперь зеркала перестраиваются, а я пишу эту инструкцию.
обсуждение
почесать языком можно здесь.