Кентавр/Btrfs/Вторая Попытка: различия между версиями
Строка 117: | Строка 117: | ||
=== О балансировке с данными в raid1 и не только === | === О балансировке с данными в raid1 и не только === | ||
- в kernel-image-el-uek нету. std-def 3.5 | - в kernel-image-el-uek нету. std-def 3.5 из сизфа, проверено работает. | ||
#btrfs dev balance start -dconvert=raid1 /btrfs | |||
http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg14365.html | http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg14365.html | ||
=== Ограничение размера subvolume === | === Ограничение размера subvolume === |
Версия от 11:34, 30 августа 2012
зачем btrfs
Жили замечательно на md-raid, снапшотов <skiped> захотелось... Да и комресии для всяких /usr и /home/src.... (выразано цензурой).
Было
/md0 - /boot /md2 - /
Нужные пакеты
Для p6: kernel-image-el-uek-2.6.39.100.5.1-alt1
Для Sisyphus можно собрать kernel-image-el-uek-2.6.39.100.5.1-alt1, а можно не заморачиваться и пробовать ветки 3.4 и даже 3.5
btrfs-progs можно взять тот что есть (он везде бородатого года) но более правильно повесить багу на его обновление до 0.19-26 из исходников oracle.
Бинарные сборки и исходники как-есть (Для p6 и Sisyphus (2012-08-23)): тут.
Выделим место для перезда
# mdadm /dev/md2 --fail /dev/sdb3 # mdadm /dev/md2 --remove /dev/sdb3 С помощью fdisk меняем тип раздела 3 на sdb с 0xFD на 0x83.
mkfs
] # mkfs -t btrfs -L pool /dev/sdb3 ] # mkdir /mnt/btrfs /mnt/btrfs-active ] # blkid
добавить строки в fstab (UUID берем из blkid):
UUID=deb3c552-be00-4102-9912-xxxxxxxxxxxx /mnt/btrfs btrfs defaults,noatime,discard 0 0 UUID=deb3c552-be00-4102-9912-xxxxxxxxxxxx /mnt/btrfs-active btrfs defaults,discard,noatime,subvol=_active 0 0 UUID=deb3c552-be00-4102-9912-xxxxxxxxxxxx /mnt/btrfs-active/usr btrfs defaults,compress=lzo,discard,noatime,subvol=_active/usr 0 0
] # mount /mnt/btrfs ] # cd /mnt/btrfs ] # mkdir _snapshot ] # btrfs subvolume create _active ] # btrfs subvolume create _active/usr ] # btrfs subvolume create _active/var ] # btrfs subvolume create _active/home ] # mount -a -t btrfs
можно переходить к переносу данных с помощью rsync, tar, cpio....
rsync
] # rsync -avhHPS --exclude={boot,dev,sys,proc,mnt,tmp,media,var/resolv,var/lib/mysql,var/spool,var/lib} / . ] # rsync -avhPS --exclude={tmp} /var/ /mnt/btrfs-active/var/ ] # mkdir var/tmp dev sys proc mnt tmp media boot ] # /etc/init.d/udevd umount ] # umount /dev/pts ] # rsync -PavH /dev/ /mnt/btrfs-active/dev/ ] # /etc/init.d/udevd start ; mount /dev/pts
chroot
] # cd /mnt/btrfs-avtive btrfs-active]# mount -o bind /boot boot btrfs-active]# mount -o bind /proc proc btrfs-active]# mount -o bind /sys sys btrfs-active]# mount -o bind /dev dev btrfs-active]# cdroot . /bin/bash Скопировать ядро и initrd для того чтобы можно было взлететь на старой системе /] # cd /boot boot]# cp vmlinuz-2.6.39.100.5.1-el-uek-alt1 vmlinuz-2.6.39.100.5.1-el-uek-alt1-old boot]# cp config-2.6.39.100.5.1-el-uek-alt1 config-2.6.39.100.5.1-el-uek-alt1-old # /etc ; rm -f mtab ; egrep '(btrfs|boot)' /proc/mounts > mtab Правим fstab:
UUID=deb3c552-be00-4102-9912-xxxxxxxxxxxx / btrfs defaults,discard,noatime,subvol=_active 0 0 UUID=deb3c552-be00-4102-9912-xxxxxxxxxxxx /usr btrfs defaults,compress=lzo,discard,noatime,subvol=_active/usr 0 0 UUID=deb3c552-be00-4102-9912-xxxxxxxxxxxx /btrfs btrfs defaults,noatime,discard 0 0
При этом не забываем комментировать лишние строки... initrd: # make-initrd /etc/sysconfig/grub2: в переменной GRUB_CMDLINE_LINUX_DEFAULT добавить "fastboot rootflags=subvol=_active" # grub-mkconfig -o /boot/grub/grub.cfg # vim /boot/grub/grub.cfg Ищем "linux /vmlinuz-2.6.39.100.5.1-el-uek-alt1-old root=" и правим root=/dev/sdb3 на старый root. Удаляем "fastboot rootflags=subvol=_active". Это нужно только для того чтобы иметь возможность загрузить старую ОС если были допущены ошибки.
Покидаем chroot
# exit # reboot
=== after reboot
пришибить остатки рейда и сказать:
# btrfs device add /dev/sda3 / # btrfs filesystem balance /
Для тех у кого btrfs-progs от oracle:
# btrfs scrub start
По завершению scrub можно:
# btrfs filesystem defragment /
О балансировке с данными в raid1 и не только
- в kernel-image-el-uek нету. std-def 3.5 из сизфа, проверено работает.
#btrfs dev balance start -dconvert=raid1 /btrfs
http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg14365.html
Ограничение размера subvolume
- Судя по history http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git будет из коробки в 3.6.
- btrfs-progs тоже нужно будут патчить.
Полезно почитать
http://www.seedsofgenius.net/uncategorized/zfs-vs-btrfs-a-reference
https://btrfs.wiki.kernel.org/index.php/Mount_options
https://wiki.archlinux.org/index.php/Installing_on_Btrfs_root
http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg14365.html