IBM HS21 raid1 monitoring mpt-status Debian
# apt-get install mpt-status
# modprobe mptctl
# mpt-status
ioc0 vol_id 0 type IM, 2 phy, 67 GB, state OPTIMAL, flags ENABLED
ioc0 phy 1 scsi_id 4 IBM-ESXS MAY2073RC T107, 68 GB, state ONLINE, flags NONE
ioc0 phy 0 scsi_id 1 IBM-ESXS MAY2073RC T107, 68 GB, state ONLINE, flags NONE
# echo 'MAILTO="moj@adres.com"' >>/etc/default/mpt-statusd
# /etc/init.d/mpt-statusd restart
Macierz read-only md1 : active (auto-read-only) raid1
Czasem po reboocie, zmianie płyty lub czymś innym macierz wstaje w trybie read-only:
# cat /proc/mdstat
Personalities : [raid1]
md1 : active (auto-read-only) raid1 sda2[0] sdb2[1]
449321848 blocks super 1.2 [2/2] [UU]
resync=PENDING
i wymaga ręcznej ingerencji. Trzeba wydać komendę:
# mdadm –readwrite /dev/md1
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda2[0] sdb2[1]
449321848 blocks super 1.2 [2/2] [UU]
[>....................] resync = 3.6% (16378048/449321848) finish=43.1min speed=167264K/sec
Podmiana dysków na większe – programowy raid1 – migracja
Mamy macierz raid1 na dwóch dyskach. Chcemy wymienić bezpoleśnie te dyski na większe, powiększając partycję.
Wyciągamy jeden z dysków, wkładamy w jego miejsce większy. Bootujemy system ze starego. Mamy:
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda3[0]
292977280 blocks [2/1] [U_]
md0 : active raid1 sda2[0]
29294400 blocks [2/1] [U_]
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0004ccb1
Device Boot Start End Blocks Id System
/dev/sda1 1 123 987966 82 Linux swap / Solaris
/dev/sda2 124 3771 29302560 fd Linux raid autodetect
/dev/sda3 3772 40245 292977405 fd Linux raid autodetect
Na nowym dysku tworzymy partycje. Takie same, poza ostatnią, która ma być większa:
Disk identifier: 0x0416460b
Device Boot Start End Blocks Id System
/dev/sdb1 1 123 987966 83 Linux
/dev/sdb2 124 3771 29302560 fd Linux raid autodetect
/dev/sdb3 3772 72949 555664253 fd Linux raid autodetect
Dodajemy partycje na nowym dysku do macierzy:
# mdadm –manage –add /dev/md0 /dev/sdb2
md0 : active raid1 sdb2[2] sda2[0]
29294400 blocks [2/1] [U_]
[=============>.......] recovery = 69.4% (20351232/29294400) finish=2.0min speed=73232K/sec
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda3[0]
292977280 blocks [2/1] [U_]
md0 : active raid1 sdb2[1] sda2[0]
29294400 blocks [2/2] [UU]
unused devices:
# mdadm –manage –add /dev/md1 /dev/sdb3
mdadm: added /dev/sdb3
Czekamy na odbudowanie macierzy:
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb3[2] sda3[0]
292977280 blocks [2/1] [U_]
[>....................] recovery = 0.1% (296704/292977280) finish=49.3min speed=98901K/sec
md0 : active raid1 sdb2[1] sda2[0]
29294400 blocks [2/2] [UU]
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb3[2] sda3[0]
292977280 blocks [2/1] [U_]
[====>................] recovery = 20.6% (60453248/292977280) finish=44.1min speed=87699K/sec
md0 : active raid1 sdb2[1] sda2[0]
29294400 blocks [2/2] [UU]
unused devices:
Teraz jeszcze zapisać GRUB na nowym dysku:
# grub-install /dev/sdb
# reboot
Wyciągamy drugi mały dysk, zamieniamy na pierwszy, bootujemy z drugiego.
Mamy teraz:
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb3[0] sda3[1]
292977280 blocks [2/2] [UU]
md0 : active raid1 sdb2[0] sda2[1]
29294400 blocks [2/2] [UU]
Zwiększamy macierz do wielkości partycji:
# mdadm –grow /dev/md1 –size=max
Odbudowuje się:
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb3[0] sda3[1]
555664128 blocks [2/2] [UU]
[==========>..........] resync = 52.7% (293091200/555664128) finish=115.1min speed=37973K/sec
md0 : active raid1 sdb2[0] sda2[1]
29294400 blocks [2/2] [UU]
Gdy skończy, powiększamy system plików. Do tego nie trzeba nawet odmontowywać partycji.
Jest:
# df
/dev/md1 310411136 271870964 22777468 93% /home
Robimy:
# resize2fs /dev/md1
resize2fs 1.41.3 (12-Oct-2008)
System plików /dev/md1 jest zamontowany pod /home; wymagana zmiana rozmiaru w locie
old desc_blocks = 18, new_desc_blocks = 34
Wykonywanie zmiany rozmiaru w locie /dev/md1 na 138916032 (4k) bloków.
System plików na /dev/md1 ma teraz 138916032 bloków.
Patrzymy jak rośnie wielkość partycji:
/dev/md1 321248412 271870896 33064444 90% /home
/dev/md1 342535984 271870828 53271004 84% /home
/dev/md1 450521784 271874336 155769272 64% /home
Po kilku minutach:
/dev/md1 546944168 271873912 247295240 53% /home
Gotowe.
Zmiana wielkości partycji LVM
(system plików ext4, opcja -r od razu uruchamia resize2fs)
# lvresize -L +1G -r /dev/bla/waroot
fsck z pakietu util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/mapper/bla-waroot: czysty, 11/1310720 plików, 126289/5242880 bloków
Extending logical volume waroot to 21,00 GiB
Logical volume waroot successfully resized
resize2fs 1.41.12 (17-May-2010)
Proszę uruchomić najpierw ‘e2fsck -f /dev/dm-6′.
fsadm: Resize ext4 failed
fsadm failed: 1
# e2fsck -f /dev/dm-6
e2fsck 1.41.12 (17-May-2010)
Przebieg 1: Sprawdzanie i-węzłów, bloków i rozmiarów
Przebieg 2: Sprawdzanie struktury katalogów
Przebieg 3: Sprawdzanie łączności katalogów
Przebieg 4: Sprawdzanie liczników odwołań
Przebieg 5: Sprawdzanie sumarycznych informacji o grupach
/dev/dm-6: 11/1310720 plików (0.0% nieciągłych), 126289/5242880 bloków
# resize2fs /dev/bla/waroot
resize2fs 1.41.12 (17-May-2010)
Zmiana rozmiaru systemu plików /dev/bla/waroot na 5505024 (4k) bloków.
System plików na /dev/bla/waroot ma teraz 5505024 bloków.
Jak kopiować z zachowaniem uprawnień, jak przenieść cały system?
Kopiowanie z podkatalogami:
cp -a /src/* /dst
(-a zastępuje -pRd czyli z zachowaniem uprawnień, podkatalogami, i zostawia linki symboliczne).
Można też używając rsync:
rsync -a /src/ /dst
slash po src ma znaczenie, bez niego
rsync -a /src /dst
skopiowałoby zawartość /src do /dst/src
Używając rsync można też kopiować pomiędzy zdalnymi maszynami, np.:
rsync -ave ‘ssh -p22′ –del –exclude ‘/proc’ –exclude ‘/dev’ root@host:/ /dsthost
Zatrzymuje się ładowanie systemu na Starting syslogd
Ładowanie systemu zatrzymuje się na:
Starting system log daemon: syslogd
może to oznaczać, że system plików zamontowany jest jako read-only, wtedy należy sprawdzić dlaczego tak się dzieje, co jest w pliku /etc/fstab, być może tam jest błąd? np. po zmianie systemu plików z reiserfs na ext3 należy pamiętać aby wyrzucić notail, czyli linię:
/dev/sda2 / reiserfs notail 0 1
zmienić na
/dev/sda2 / ext3 defaults 0 1
Tags: bootowanie, grub, syslog, syslogd
Przygotowanie płyty startowej z bootloaderem GRUB
Czasem zdarza się, że po podpięciu dysku okazuje się, że bootloader nie chce z niego wstać, np. pokazuje się:
GRUB loading, please wait...
Error 17
Można wtedy zbootować system z innego nośnika, podmontować partycję root i zainstalować na nowo gruba:
mount /dev/sda2 /mnt
chroot /mnt
grub-install /dev/sda
Bezpiecznie mieć przygotowany mośnik startowy z samym GRUBem, np. płytę CD. Przygotować możemy ją tak:
pobieramy specjalnie przygotowany plik stage2_eltorito np. stąd
Przygotowujemy iso płyty startowej.
mkdir -p iso/boot/grub
kopiujemy plik stage2_eltorit to podkatalogu grub
genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso
(w starszych dystrybucjach zamiast genisoimage używamy mkisofs).
Otrzymujemy wynikowy plik grub.iso (stąd możemy pobrać gotowy plik iso do nagrania na płytę
Startujemy z płyty, pojawia się znany shell gruba.
Jak sprawdzić UUID ?
UUID partycji/urządzenia można sprawdzić komendą:
ro8:~# blkid
/dev/sda1: TYPE="swap"
/dev/sda2: UUID="68ce1536-1041-4460-a9bf-0c30850ac4fe" TYPE="reiserfs"
lub
# ls -l /dev/disk/by-uuid
razem 0
lrwxrwxrwx 1 root root 10 sty 14 2011 68ce1536-1041-4460-a9bf-0c30850ac4fe -> ../../sda2
Brak wolnych inodów
Gdy na partycji znajduje się za dużo małych plików może okazać się, że brakuje wolnych inodów.
df -i
/dev/mapper/hos-news 1310720 1310518 202 100% /var/spool/news
tune2fs -l /dev/hos/news |grep Inode
Inode count: 1310720
Inodes per group: 8192
Inode blocks per group: 512
Inode size: 256
Można zmienić na system plików, który dynamicznie przydziela inody (np. raiserfs, xfs), lub ręcznie zmienić ich liczbę.
Tworząc nowy system plików można ustawić na ile bajtów partycji ma być jeden inode, np.
mkfs.ext3 -i 4096 /dev/hos/news2
powoduje stworzenie systemu plików, gdzie dla każdych 4kB jest jeden inode, czyli:
# df
/dev/mapper/hos-news2 24G 3,6G 19G 16% /var/spool/news
# df -i
/dev/mapper/hos-news2 6553600 761241 5792359 12% /var/spool/news
Odzyskiwanie usuniętych plików vfat/FAT16/FAT32 pod linuksem
W pakiecie testdisk (pod Debianem) znajduje się aplikacja odzyskująca pliki z systemu plików.
Wywołuje się podając urządzenie, które ma zostać przeszukane:
photorec /dev/sdc1
Po wywołaniu pyta gdzie ma zapisywać znalezione pliki.
Potrafi znajdować pliki na partycjach VFAT/FAT16/32, także na ext2/ext3, choć nie zawsze robi to poprawnie.
