SPOJE.NET

Technická dokumentace

Uživatelské nástroje

Nástroje pro tento web


howto:hw:disky

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
howto:hw:disky [2019/05/14 21:08] – [LVM] harviehowto:hw:disky [2024/02/21 16:06] (aktuální) harvie
Řádek 37: Řádek 37:
     * ''%%echo "idle" >  /sys/block/md0/md/sync_action%%'' (defer active resync)     * ''%%echo "idle" >  /sys/block/md0/md/sync_action%%'' (defer active resync)
     * ''%%sysctl -w dev.raid.speed_limit_min=500000000; sysctl -w dev.raid.speed_limit_max=500000000%%'' (unthrottle raid sync)     * ''%%sysctl -w dev.raid.speed_limit_min=500000000; sysctl -w dev.raid.speed_limit_max=500000000%%'' (unthrottle raid sync)
 +
 +=== Přidání dalšího disku do raidu s UEFI boot ===
 +
 +  * ''%%mdamd --grow --raid-devices=2 --force /dev/md127%%'' (--force je potreba pokud byl puvodne raid1 zalozen jen s jednim diskem)
 +  * ''%%mdadm --manage /dev/md127 --add /dev/sdb3%%''
 +  * ''%%umount /boot/efi%%'' - je potreba odpojit puvodni EFI partiton, ktera je pravdepodobne na sda2
 +  * ''%%mkfs.vfat /dev/sdb2%%'' - musime prirpavit EFI partici na novem disku
 +  * ''%%mount /dev/sdb2 /boot/efi%%'' nyni pripojime novou EFI partici do puvodniho umisteni.
 +  * ''%%grub-install /dev/sdb%%''
 +  * standardne nepotrebujeme mit pripojenou /boot/efi v FSTAB, ale je potreba myslet na to, ze pri upgradu kernelu musime OBE partice postupne pripojit a zapsat na ne aktualni verzi grubu !!
 +
 +Pri tomto postupu dokazeme nabootovat do zalozniho kopie systemu v pripade potizi s primarnim diskem.
 +
 === Zvětšení RAID pole === === Zvětšení RAID pole ===
  Chceme zvětšit pole např. o velikosti 500G na nové disky o velikosti 1TB. Ideální je to dělat na degradovaném poli, protože tím získáme zároveň zálohu původního pole.   Chceme zvětšit pole např. o velikosti 500G na nové disky o velikosti 1TB. Ideální je to dělat na degradovaném poli, protože tím získáme zároveň zálohu původního pole. 
Řádek 143: Řádek 156:
     * ''zpool create tank mirror /dev/sda /dev/sdb''     * ''zpool create tank mirror /dev/sda /dev/sdb''
       * Nekdy je dobry pridat parametr ''-o ashift=12'', kde hodnota ashift = exponent 2 pro zarovnani na sektory. 2^**9**=512B sektory, 2^**12**=4096B sektory,... Nejde to menit po naformatovani, nicmene default by mel bejt vic nez rozumny reseni, takze bych se spis vyhnul rejpani se v tomhle       * Nekdy je dobry pridat parametr ''-o ashift=12'', kde hodnota ashift = exponent 2 pro zarovnani na sektory. 2^**9**=512B sektory, 2^**12**=4096B sektory,... Nejde to menit po naformatovani, nicmene default by mel bejt vic nez rozumny reseni, takze bych se spis vyhnul rejpani se v tomhle
 +      * Také se doporučuje přidávat disky podle id, např.: ''/dev/disk/by-id/wwn-NECONECO'' kvůli spolehlivější detekci
     * ''#zpool set listsnapshots=on tank'' neni potreba, tyka se jen vypisu "zfs list", jinak se snapshoty daj normalne i bez toho vypsat ''ls -la /tank/.zfs/snapshot/''     * ''#zpool set listsnapshots=on tank'' neni potreba, tyka se jen vypisu "zfs list", jinak se snapshoty daj normalne i bez toho vypsat ''ls -la /tank/.zfs/snapshot/''
     * ''#zfs set recordsize=16k tank'' (nastavit recordsize na stejnou velikost jako pouziva db. aplikuje se jen pro nove soubory: default=128k, innodb-data=16k, innodb-log=128k, myisam=8k, postgresql=8k, sysbench=16k)     * ''#zfs set recordsize=16k tank'' (nastavit recordsize na stejnou velikost jako pouziva db. aplikuje se jen pro nove soubory: default=128k, innodb-data=16k, innodb-log=128k, myisam=8k, postgresql=8k, sysbench=16k)
Řádek 169: Řádek 183:
       * ani u jednoho nevadi vypadek, v cache jsou jen data precteny z rotacniho disku a vsechno co je v logu je i v RAMce, log by se pouzil jen pri vypadku napajeni, kdy bysme o RAMku prisli       * ani u jednoho nevadi vypadek, v cache jsou jen data precteny z rotacniho disku a vsechno co je v logu je i v RAMce, log by se pouzil jen pri vypadku napajeni, kdy bysme o RAMku prisli
     * Dimenzovani     * Dimenzovani
-      * velikost logu staci cca 0.6 GB na kazdy gigabit sitovky co mame na systemu. 16GB by tedy melo s obri rezervou stacit i pro pripady ze budem mit 2x10G sitovku. Flushuje se jednou za 5 sekund, takze staci kdyz se do nej vejdou vsechny synchronni zapisy co probihaj za 5 sekund. (= ano, vic nez 16GB tezko budem v soucasnosti potrebovat, i to je fakt hodne)+      * velikost logu staci cca 0.6 GB na kazdy gigabit sitovky co mame na systemu. 16GB by tedy melo s obri rezervou stacit i pro pripady ze budem mit 2x10G sitovku. Flushuje se jednou za 5 sekund, takze staci kdyz se do nej vejdou vsechny synchronni zapisy co probihaj za 5 sekund. (= ano, vic nez 16GB tezko budem v soucasnosti potrebovat, i to je fakt hodne, prakticky staci asi 1GB nebo min)
       * na cache je potom dobre vyuzit vsechno misto co nam na SSD zbyde po logu (cim vic, tim lip. dava smysl, aby byla cache radove vetsi nez log i L1ARC, ale jejich velikosti spolu primo nijak nesouvisi)       * na cache je potom dobre vyuzit vsechno misto co nam na SSD zbyde po logu (cim vic, tim lip. dava smysl, aby byla cache radove vetsi nez log i L1ARC, ale jejich velikosti spolu primo nijak nesouvisi)
     * log a cache vzdy pridavame jako /dev/disk/by-id/ nemaji metadata!!!     * log a cache vzdy pridavame jako /dev/disk/by-id/ nemaji metadata!!!
     * ''zpool add tank log /dev/loop0''     * ''zpool add tank log /dev/loop0''
     * ''zpool add tank cache /dev/loop1''     * ''zpool add tank cache /dev/loop1''
 +    * ''zpool iostat -v'' vypise obsazeni logu a cache (a vsech jednotek v poolu)
     * ''zpool remove tank /dev/loop0 /dev/loop1''     * ''zpool remove tank /dev/loop0 /dev/loop1''
   * Vymena disku v RAIDu (konzultovat s harviem!!!)   * Vymena disku v RAIDu (konzultovat s harviem!!!)
     * ''zpool detach tank sdb2''     * ''zpool detach tank sdb2''
-    * ''zpool attach tank sda2 sdb2''+    * ''zpool attach tank sda2 sdb2'' (asi dava spis smysl attachnout celej prazdnej disk, oddily si vytvori ZFS samo) 
 +  * Aktivace automatickyho zvetsovani zrcadla (asi dobry udelat uz pred vymenou disku za vetsi) 
 +    * ''zpool set autoexpand=on tank''
   * ZVOL (= neco jako LVM uvnitr ZFS poolu, doporuceny na swapy a image virtualu!)   * ZVOL (= neco jako LVM uvnitr ZFS poolu, doporuceny na swapy a image virtualu!)
     * ''zfs create -V 5gb tank/vol'' (vytvori jednotku /dev/zvol/tank/vol, taky znamy jako /dev/zd0, parametr ''-s'' udela zvol bez rezervace diskovyho prostoru v poolu = thin-provisioning)     * ''zfs create -V 5gb tank/vol'' (vytvori jednotku /dev/zvol/tank/vol, taky znamy jako /dev/zd0, parametr ''-s'' udela zvol bez rezervace diskovyho prostoru v poolu = thin-provisioning)
Řádek 185: Řádek 202:
     * ''zpool import'' nebo ''zpool import -a'' pro exportnuty     * ''zpool import'' nebo ''zpool import -a'' pro exportnuty
     * ''zfs mount -a''     * ''zfs mount -a''
 +  * SWAP na ZFS
 +    * Swapovani do souboru na ZFS neni podporovano, ale snad se da pouzit ZVOL jako swap
 +    * Nicmene jsou tam problemy (ZFS nekdy potrebuje pri zapisu do zvolu samo swapovat, coz je dost nemily predpoklad pro zapis do swapu = zpusobuje zamrznuti)
 +      * nekdo tvrdi, ze pomuze ZVOLu nastavit ''logbias=troughput'' a ''compress=zle'', nicmene jsem netestoval
 +      * urcite to chce mit nastaveny hung_task a reboot pri panicu
 +  * Vylepseni pro backup destinace
 +    * ''zfs set readonly=yes tank/backup'' - zabranime systemu menit zalohy (recv stale funguje)
 +    * ''zfs set volmode=none tank/backup'' - schovame ZVOLy pred systemem (aby nam je nedetekoval treba mdraid nebo lvm)
   * Testovani ZFS   * Testovani ZFS
     * Ztest NESLOUŽÍ k testování zfs modulu v jádře!!! Pro otestovani systemu je naprosto nevhodny.     * Ztest NESLOUŽÍ k testování zfs modulu v jádře!!! Pro otestovani systemu je naprosto nevhodny.
Řádek 220: Řádek 245:
     * ''echo 1 > /sys/block/**sda**/device/delete'' (odpoji disk **sda**)     * ''echo 1 > /sys/block/**sda**/device/delete'' (odpoji disk **sda**)
     * ''echo "- - -" > /sys/class/scsi_host/**host0**/scan'' (najde disky na sbernici **host0**)     * ''echo "- - -" > /sys/class/scsi_host/**host0**/scan'' (najde disky na sbernici **host0**)
 +
 +==== Fyzická identifikace disku ====
 +
 +=== Pomocí LED ===
 +
 +Pokud má stroj modré identifikační led diody u jednotlivých šuplíčků disku, je možné je rozsvítit nebo zhasnout následujícím příkazem z balíčku ''ledmon'':
 +
 +  * ''ledctl locate=/dev/sda''
 +  * ''ledctl locate_off=/dev/sda''
 +
 +Je možné použít i hierarchické označení disku (např. ''/dev/disk/by-id/[drive-id]'', atd...)
 +
 +
 +
 +==== Host Protected Area (HPA) ====
 +
 +Precti si o tom neco nez to zacnes pouzivat!
 +
 +  * Zakazat v GRUBu: ''libata.ignore_hpa=1''
 +  * Overit: ''cat /sys/module/libata/parameters/ignore_hpa''
 +  * Zjistit stav HPA u disku: ''hdparm -N /dev/sd?''
 +  * Nastavit HPA u disku na hodnotu XXX: ''hdparm -N XXX /dev/sdx'' (HPA se zrusi nastavenim hodnoty XXX na max co disk umi)
 +    * Pokud se ma hodnota XXX zachovat permanentne i po rebootu, tak se musi uvadet s "p" jako ''pXXX'', jde to udelat jen jednou za power-cycle.
  
 ==== Migrace ext3 na ext4 ==== ==== Migrace ext3 na ext4 ====
Řádek 232: Řádek 280:
 Podrobnosti na [[http://www.debian-administration.org/article/643/Migrating_a_live_system_from_ext3_to_ext4_filesystem]] Podrobnosti na [[http://www.debian-administration.org/article/643/Migrating_a_live_system_from_ext3_to_ext4_filesystem]]
  
 +==== Migrace Windows 10 na mensi SSD ====
 +
 +Migroval jsem uspesne 1TB HDD na 960GB SSD. Delat to z windows je nemozne (nezkousel jsem placene windows nastroje tretich stran, ale vsechny freeware nastroje i programy dodavane k SSD selhaly, primo ve windows neni nic co by to zvladlo). Na Linuxu to jde, ale je to trochu makačka. Muj postup byl nasledujici:
 +
 +  * Na windows 10 v nabidce start najit CMD a "spustit jako spravce"
 +  * Na windows pustit ''chkdsk /f'', nabídne to naplanovani opravy FS pri dalsim rebootu, rebootnout a zcekovat. Linux tohle neumi.
 +  * Kdyz je disk opravenej, muze clovek nabootovat live linux, pouzil jsem ArchBang. Ma predinstalovane vse potrebne, bezi z RAM a vejde se na flashku.
 +  * Pomoci ''cfdisku'' si otevru stary a novy disk. Vsechny oddily vytvorim stejne na GPT(!), ale ten nejvetsi zmensim aby se to tam vse veslo. Velikosti zadavam v sektorech, stejne jako na puvodnim disku. Pouziva se k tomu suffix "S", napr.: ''123456789S''. Bohuzel to neumim naskriptovat, takze jsem to delal docela rucne:
 +    * Nastavim stejny typ u vsech partic, zapisu a zavru cfdisk.
 +    * Pomoci ''sgdisk'' nastavim GUID disku (''-U'') i jednotlivych partici (''-u'') a jejich atributy (''-A'') tak, aby byly stejne jako na puvodnim disku. Jinak to nebude bootovat!!! Je to mravenci prace, dela se to po jednom, detaily v ''man sgdisk''. Jake GUID ma puvodni disk jsem vycital z cfdisku.
 +  * Podivam se jak velka je cilova partice se systemem a resiznu zdrojovy system aby se tam s rezervou vesel. Napr.: ''ntfsresize --size 850G /dev/sda2''. Musi tam byt volne misto aby to slo. Toto selze, pokud jsi na zacatku neudelal ''chkdsk /f''
 +  * Po resiznuti znovu rebootnu do windows a znovu udelam ''chkdsk /f'' vcetne rebootu jako predtim, aby se disk opravil. pak se vratim do linuxu.
 +  * Pomoci ''dd'' prekopiruju obsah jednotlivych partic krome te nejvetsi systemove.
 +  * Nejvetsi systemovou prekopiruju pomoci ''ntfsclone'', napr.: ''%%ntfsclone --overwrite /dev/cil /dev/zdroj%%''. Funguje to jako dd, ale nekopiruje to bloky nealokovane fs, takze na poloprazdnem fs to usetri pulku casu. Necham bezet pres noc.
 +  * ''sync''
 +  * Znovu rebootnu do windows a udelam ''chkdsk /f''+reboot, vratim se do linuxu
 +  * Protoze jsem si nechal par GB rezervu a chci ji ziskat zpatky, tak na cilovem systemu pustim ''ntfsresize /dev/sdb2'' na systemovy oddil, abych filesystem roztahl opet pres celou novou partici
 +  * Znovu rebootnu do windows a udelam ''chkdsk /f''+reboot, windows by mely v poradku bootovat
 +  * Protoze oba disky maji stejna GUID, neni mozne je oba mit ve windows pripojene najednou. Puvodni disk necham 1-3 mesice, nez se zahori SSD a pak na nem prepisu GPT s novym oddilem, ten naformatuju a mam externi disk na zalohy, nebo cokoliv jineho.
  
 ==== Poznámky ==== ==== Poznámky ====
howto/hw/disky.1557860894.txt.gz · Poslední úprava: 2019/05/14 21:08 autor: harvie