Uživatelské nástroje

Nástroje pro tento web


raid

Toto je starší verze dokumentu!


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
  • Kombinace SSD + HDD 1
    • raid1
      • rychlost čtení by měla být cca na úrovni SSD
      • zápis bude degradován na rychlost HDD
      • hodí se pro statické oddíly (systémový oddíl), kde se hodně čte a moc nezapisuje

mdadm

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
    1. generuje GRUB image (ten efi)
    2. instaluje jej do efi part
    3. 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
  • 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.1554585180.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki