raid
Toto je starší verze dokumentu!
Obsah
Disková pole
- na začátek info o raid na wiki
- typy
- hardwarové - speciální akcelerované řadiče, rychlejší než pseudo/sw raid, neviditelný pro OS, používá se u serverů
- pseudohardwarove - na desktopových základních deskách, neviditelný pro OS, prý bývá lepší použít sw raid (lépe podporován OS, více možností, rychlost obdobná)
- softwarové - například mdadm v linuxu
- typy RAID
- raid0 - prokládání, čtení/zápis n-krát rychlejší, žádná ochrana před výpadkem disku
- raid1 - zrcadleni, čtení může být n-krát rychlejší - záleží na implementaci (např. mdadm má rychlejší paralelní čtení)
- raid5 - prokládání s kontrolními součty, výpočet součtu zpomaluje zápis
- raid10 - spojení 1+0, typicky 4 disky, čtení n/2-krát rychlejší, zápis n/2-krát rychlejší, ochrana proti výpadku disku
- ..
- sw raid
- je prý lepší dělat raid pro každou partition zvlášť než pro celý disk
- lepší práce s jednotlivými partition
- například boot raid1, system raid1 a home raid5
-
- například, že recovery lze zrychlit pomocí bitmap
Postup zprovozneni raid1 (old)
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
- postup (zkracene)
- mel jsem normalni funkcni disk sda
- pripojil jsem druhy disk (sdb) a pripravil na nem pomoci fdisk oddily Linux raid autodetect s kodem 0xfd
- puvodne jsem chtel mit 3 oddily, ale raid lepe pracuje kdyz je jen jeden na jednom disku :)
- do jadra jsem pridal podporu pro raid.. je to normalne v device driver - block - ..
- nainstaloval jsem si mdadm
- vytvoril jsem pole md0
mdadm --create /dev/md0 -c 128 -l 1 -n 2 /dev/sdb1 missing
- vytvoril na nem fs
mkfs.ext3 /dev/md0
- zkopiroval na nej data ze soucasneho systemu az na dev, proc, sys a tmp
# init 1 # mkdir /tmp/newroot # mount /dev/md0 /tmp/newroot # cp -p -P /[slozka] /tmp/newroot/
# ls / > /tmp/xx ... odstranil z xx nechtene slozky ... # for i in `cat /tmp/xx`; do cp -p -P /$i /tmp/newroot/; done
- vytvoril jsem chybejici slozky
mkdir /tmp/newroot/proc mkdir /tmp/newroot/sys mkdir /tmp/newroot/dev mkdir /tmp/newroot/tmp ... u tmp se musi pridat sticky bit ..
- zkopiroval jsem minimalni dev: rendom, null, zerro, console
- opravil zavadec
dpkg-reconfigure grub-pc
- odpojil prvni disk sda a zkusil nabootovat
- po mensich nesrovnalostech jsem overil fungovani pole s jednim diskem a pridal druhy
- mezitim jsem parkrat prehodil sdb za sda.. takze v tom byl trochu gulas :)
mdadm /dev/md0 -a /dev/sdb
postup zprovozneni raid1 (new)
- prechod na novy vetsi disk
- prechod na GPT misto msdos partition tabulky
- prechod na EFI, tj grub-efi misto grub-pc
- prechod na mdraid v 1.2
- prechod na ext4
GPT
- podpora v Kernel
CONFIG_EFI=y CONFIG_FB_EFI=y CONFIG_EFI_VARS=m CONFIG_EFI_PARTITION=y
- jednoduche, tabulka se na disku vytvori napriklad pres gdsik
- je treba vytvorit minimalne partittion pro linux raid a EFI
Disk /dev/sdc: 3907029168 sectors, 1.8 TiB Logical sector size: 512 bytes Disk identifier (GUID): 264269A5-E3C2-404D-8BC2-35EE099743AB Partition table holds up to 128 entries First usable sector is 34, last usable sector is 3907029134 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 2726299647 1.3 TiB FD00 Linux RAID 2 2726299648 2726301695 1024.0 KiB EF00 EFI System 3 2726301696 2726506495 100.0 MiB FD00 Linux RAID 4 2726506496 3041079295 150.0 GiB 0700 Microsoft basic data 5 3041079296 3907029134 412.9 GiB 0700 Microsoft basic data
mdadm --create /dev/md1 -l1 -n2 /dev/sdc1 missing
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
- na md disk jde vytvorit bud rovnou partition nebo nejdriv part tabulku. Prvni pripad zaklada part tabulku loop. Druhy priklad umoznuje vytvorit vice part v ramci md.
mkfs.ext4 /dev/md1
- kopirovani dat….
init 1 mkdir /tmp/old mkdir /tmp/new mount -o ro,remount / mount -o ro /dev/md0 /tmp/old mount /dev/md1 /tmp/new rsync -a /tmp/old/* /tmp/new
EFI boot
- chroot pro nainstalovani grub-efi (z chroot se vyliza pomoci exit)
init 1 mkdir /tmp/old mkdir /tmp/new mount -o ro,remount / mount -o ro /dev/md0 /tmp/old mount /dev/md1 /tmp/new
mount -t proc proc /tmp/new/proc mount -t sysfs sys /tmp/new/sys mount -o bind /dev /tmp/new/dev chroot /tmp/new
- grub-efi nemuze byt soucasne s grub-pc… nejlepsi je udelat purge pred :)
apt-get purge grub* apt-get install grub-efi
- formaotvani efi part
mkfs.vfat /dev/sdc2
- instalace grub-efi
- generuje GRUB image (ten efi)
- instaluje jej do efi part
- zkousi zapsat do efi boot manageru novou polozku (to vyzaduje aktivni efi, coz v biosu ted neni!! tento krok se doresi pozdejc.. ted selze)
grub-install /dev/sdc
- oprava (tam to efi boot loader hleda) efi part (ten mount se doporucuje udelat trvale (fstab) do /boot/efi)
mount /dev/sdc2 /boot/efi cp /boot/efi/efi/debian/grubx64.efi /boot/efi/efi/boot/bootx64.efi
- restart
- grub2 nema u me zadne polozky, prestoze byly detekovany.. neco spatne :)
Grub2 commands
- rucni boot:
- vypise dostupne disky/part
ls
- identifikace spravne root partition
ls (md/1)/
- nastavi root na partition (ted by uz fungovalo ls /)
set root=(md/1)
- kernel beru z noveho disku, ale root musim jeste na stary, protoze nemam initrd zatim pro inicializaci mdraid 1.2 po krenel. Pokud bych pouzil stary 0.90, tak by zafungoval kernel raid autodetect.. novy block 1.2 ale neni podporovan. Zjistil jsem, ze mackanim tab se doplnuji soubory/adresare, takze neni potreba si pamatovat nazev vmlinuz presne :) navic je tam vzdy symlink - ten vmlinuz primo.
linux /boot/vmlinuz root=/dev/md0 ro
- nastaveni framebufferu (aby pak funoval textova konzole)
insmod efi_gop insmod efi_uga insmod font insmod gfxterm set gfxmode=auto set gfxpayload=keep terminal_output gfxterm
- a start
boot
- nebo pokud to nekde mam v config file, tak se da nastavit root a pak zavolat prikaz configfile :)) a nacist ho :)
- …. druhy grub install
- rekl bych, ze musim mit vzdy mount v tom /boot/efi.. bez toho to nic nedela…
- do fstab lze zapisovat i uuid!!
- blkid /dev/sdc2
- UUID=„“
Grub2 rescue
grub rescue> set prefix=(hd0,1)/boot/grub grub rescue> set root=(hd0,1) grub rescue> insmod normal grub rescue> normal grub rescue> insmod linux grub rescue> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1 grub rescue> initrd /boot/initrd.img-3.13.0-29-generic grub rescue> boot
- trvala oprava
efibootmgr -v grub-install /dev/sda
initrd
apt-get install initramfs-tools Nastavuji balík busybox (1:1.20.0-8.1) … Nastavuji balík libklibc (2.0.1-3.1) … Nastavuji balík klibc-utils (2.0.1-3.1) … Nastavuji balík initramfs-tools (0.113) …
make menuconfig Device Drivers ---> Block Devices ---> <*> RAM block device support General setup ---> <*> Initial RAM filesystem and RAM disk (initramfs/initrd) support
/etc/initramfs-tools/modules ... md raid1 ext4 mkinitramfs -o /boot/initrd.img-3.4.8-ng
* rval, ze mu chybi console-setup.. tak nainstalujeme :)
apt-get install console-setup navic instaloval console-setup-linux
oprava windows
- celou partition windows 7 (mbr) jsem zkopiroval pres dd do GPT tabulky
- nenasel jsem zpusob, jak z grub2-efi spustit MBR :) ono to asi proste vubec nejde
- zjistil jsem, ze pro EFI vytvari windows vetsinou 3 partition
- EFI partition (ESP)
- windows boot prattion, obsahuje: NTLDR, HAL, Boot.txt, …
- vetsinou 100 MB
- Microsoft Reserved Partition (MSR)
- pry rezerva volneho mista pro Windows. Nejspis ochrana proti vypotrebovani veskereho mista na system partittion
- GPT pry neumoznuje hidden sectors, tak se to resi samostatnou partition
- velikost zavisi na disku… pro < 16 GB se pouziva 32 MB, pro > 16 GB se pouziva 128 MB
- System partition (Windows) - to je s windows
- moje DVD s W7 All in one se vubec na EFI nespusti :)
- nasel jsem navod na vytvoreni EFI boot USB
- usb naformatovat na FAT32
- zkopirovat cely obsah instalacniho DVD
- zkopirovat slozku /efi/microsoft/boot na /efi/
- dale, je treba vytvorit bootx64.efi .. ten se bere z sources/install.vim.. na all in one tam bohuzel nenbyl, takze se mi USB vytvorit vubec nepodarilo
- v pripade W7 professional se mi bootovaci usb vytvorit ale podle navodu povedlo
- rozsahly navod na windows a linux dual boot… obecne hodne informaci o boot http://forums.opensuse.org/english/get-technical-help-here/how-faq-forums/unreviewed-how-faq/487837-how-dual-boot-preinstalled-windows-8-linux-uefi-etc.html
- zjistil jsem, ze na disku by mela byt idealne pouze jedna EFI partition
- v teto efi partition muze byt vice zavadecu.. nakonec to dopadlo nasledovne (linux+windows):
EFI/Boot/bootx64.efi
/debian/grubx64.efi
/Microsoft/Boot/...
bootmgfw.efi
bootmgr.efi
...
memtest.efi
- windows jsem nakonec rozchodil nasledovne:
- pouzil jsem instalacni DVD Windows 8 Professional x64 z MSDN
- vypnul jsem druhy disk, aby to instalator nematlo (nadaval, ze ma maly EFI oddil na tom 2. disku)
- odstranil jsem EFI partition z prvniho disku, aby to windows instlator nematlo
- po nainstalovani windows jsem v EFI opet zapnul druhy disk, nabootoval linux z EFI 2. disku
- v linuxu jsem pripojil windows EFI oddil do /boot/efi, spustil instalaci grub-efi na prvni disk.
- grub-efi zavadec se pridal na Windows EFI oddil.
- grub-mkconfig -o /boot/grub/grub.cfg mi pridal dokonce polozku pro windows a funkcni :)
menuentry "Windows Boot Manager (UEFI on /dev/sda5)" --class windows --class os {
insmod part_gpt
insmod fat
set root='(hd2,gpt5)'
search --no-floppy --fs-uuid --set=root 6C5E-8A91
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
- moje finalni rozdeleni disku 1
- sda1 - mdadm raid oddil
- sda2 - puvodne EFI partition… nakonec jsem ji pretypoval na 8300, aby tam nestrasila :)
- sda3 - klasicka NTFS partition, pouzivana pro data
- —————————————————–
- sda4 - Windows oddil pro obnovu, vytvoril windows 8 instalator, netusim k cemu to je :)
- sda5 - EFI partition, vytvoritl windows 8 instalator a ja k ni pak prihodil linux (grub-install /dev/sda)
- sda6 - Windows MSR oddil, vytvoril instalator windows 8
- sda7 - Windows systemovy oddil, vytvoril instalator windows 8
Number Start (sector) End (sector) Size Code Name 1 2048 2726299647 1.3 TiB FD00 Linux RAID 2 2726299648 2726301695 1024.0 KiB 8300 Linux filesystem 3 2726301696 3670020095 450.0 GiB 0700 Microsoft basic data 4 3670020096 3670634495 300.0 MiB 2700 Basic data partition 5 3670634496 3670839295 100.0 MiB EF00 EFI system partition 6 3670839296 3671101439 128.0 MiB 0C01 Microsoft reserved part 7 3671101440 3907028991 112.5 GiB 0700 Basic data partition
linky
raid.1554583350.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)
