Rozwiązanie jest proste: "przesuniemy" trochę wolnej przestrzeni z innej partycji :).
Na początek musimy zorganizować taką wolną przestrzeń.
serwer:/# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vgraid1-root 4.0G 423M 3.4G 12% /
tmpfs 4.4G 0 4.4G 0% /lib/init/rw
udev 10M 56K 10M 1% /dev
tmpfs 4.4G 0 4.4G 0% /dev/shm
/dev/sda1 183M 19M 155M 11% /boot
/dev/mapper/vgraid1-home 16G 2.6G 13G 18% /home
/dev/mapper/vgraid1-usr 16G 624M 15G 5% /usr
/dev/mapper/vgraid1-var 15.0G 235M 14.6G 2% /var
Jak widać na /var mamy sporo wolnego marnującego się miejsca i je właśnie wykorzystamy. Modyfikować możemy wyłącznie partycje, które nie są zamontowane. Odmontujemy zatem /var !
serwer:/# umount /var
umount: /var: device is busy
umount: /var: device is busy
Nie da się :( - mogliśmy się tego spodziewać - partycja jest używana. Musimy zadbać by nie była.
serwer:/# lsof |grep /var
acpid 12208 root 1w REG 254,4 159 626 /var/log/acpid
acpid 12208 root 2w REG 254,4 159 626 /var/log/acpid
cron 12224 root cwd DIR 254,4 4096 676 /var/spool/cron
cron 12224 root 3u REG 254,4 6 701 /var/run/crond.pid
syslogd 12241 root 1w REG 254,4 126215 194 /var/log/auth.log
syslogd 12241 root 2w REG 254,4 30750 160 /var/log/syslog
syslogd 12241 root 3w REG 254,4 4590 190 /var/log/daemon.log
syslogd 12241 root 4w REG 254,4 0 195 /var/log/kern.log
syslogd 12241 root 5w REG 254,4 0 1217 /var/log/lpr.log
syslogd 12241 root 6w REG 254,4 0 1218 /var/log/mail.log
syslogd 12241 root 7w REG 254,4 0 189 /var/log/user.log
syslogd 12241 root 8w REG 254,4 0 1220 /var/log/uucp.log
syslogd 12241 root 9w REG 254,4 0 1221 /var/log/mail.info
syslogd 12241 root 10w REG 254,4 0 1222 /var/log/mail.warn
syslogd 12241 root 11w REG 254,4 0 1223 /var/log/mail.err
syslogd 12241 root 12w REG 254,4 0 1224 /var/log/news/news.crit
syslogd 12241 root 13w REG 254,4 0 1225 /var/log/news/news.err
syslogd 12241 root 14w REG 54,4 0 1226 /var/log/news/news.notice
syslogd 12241 root 15w REG 254,4 0 405 /var/log/debug
syslogd 12241 root 16w REG 254,4 3525 191 /var/log/messages
ntpd 12255 ntpd cwd DIR 254,4 4096 713 /var/run/openntpd
ntpd 12255 ntpd rtd DIR 254,4 4096 713 /var/run/openntpd
Ok! żaden z programów nie wydaje się skrajnie ważny. System bez nich przez chwilę sobie poradzi. Zatem do dzieła. Wyłączamy usługi używające partycję /var.
serwer:/# lsof |grep /var
serwer:/# /etc/init.d/acpid stop
serwer:/# /etc/init.d/cron stop
serwer:/# /etc/init.d/sysklogd stop
serwer:/# /etc/init.d/openntpd stop
sprawdzamy czy jeszcze coś nie zostało
serwer:/# lsof |grep /var |wc -l
0
To jest TEN MOMENT kiedy należy zrobić backup danych z partycji, którą zamierzamy modyfikować. Ja zrobiłem to tak
serwer:/# tar cvvf var_backup.tar /var
Ok. Teraz możemy odmontować /var
serwer:/# umount /var
Sukces!
Teraz powinniśmy sprawdzić poprawność partycji:
serwer:/# e2fsck -f /dev/mapper/vgraid1-var
e2fsck 1.40-WIP (14-Nov-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vgraid1-var: 1419/1831424 files (4.2% non-contiguous), 119616/3670016 blocks
Teraz zmienimy rozmiar partycji /dev/mapper/vgraid1-var. Najpierw musimy zmienić jej rozmiar na mniejszy niż jej rozmiar docelowy. W naszym przypadku rozmiar docelowy to 5G zatem zmniejszymy sobie rozmiar systemu plików do 3G.
serwer:/# resize2fs -p /dev/mapper/vgraid1-var 3G
resize2fs 1.40-WIP (14-Nov-2006)
Resizing the filesystem on /dev/mapper/vgraid1-var to 786432 (4k) blocks.
Begin pass 2 (max = 4448)
Relocating blocks XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 112)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 4 (max = 106)
Updating inode references XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/vgraid1-var is now 786432 blocks long.
teraz zmniejszymy sobie partycję LVM:
serwer:/# lvreduce --size 5G /dev/vgraid1/var
WARNING: Reducing active logical volume to 5.00 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce var? [y/n]: y
Reducing logical volume var to 5.00 GB
Logical volume var successfully resized
a następnie ponownie uruchomimy resize2fs, ale teraz bez podawania rozmiaru systemu plików. Wówczas zostanie on ustawiony na maksymalny możliwy na danym urządzeniu
serwer:/# resize2fs -p /dev/mapper/vgraid1-var
resize2fs 1.40-WIP (14-Nov-2006)
Resizing the filesystem on /dev/mapper/vgraid1-var to 1310720 (4k) blocks.
Begin pass 1 (max = 16)
Extending the inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/vgraid1-var is now 1310720 blocks long.
I tyle. Pozostaje nam jeszcze ponownie zamontować partycję i uruchomić wcześniej zatrzymane usługi
serwer:/# mount /var
serwer:/# /etc/init.d/acpid start
serwer:/# /etc/init.d/cron start
serwer:/# /etc/init.d/sysklogd start
serwer:/# /etc/init.d/openntpd start
dzięki tej operacji mamy 10G nieprzydzielone do żadnej partycji. Wykonaliśmy już 50% zadania.
Teraz czas na zwiększenie partycji /home.
Podobnie jak poprzednio musimy zrobić backup a następnie odmontować partycję, którą będziemy modyfikować.
serwer:/# tar cvvf home.tar /home
serwer:/# umount /home
Teraz zmieniamy rozmiar partycji przydzielając jej zaoszczędzone wcześniej 10G
serwer:/# lvextend -L+9G /dev/vgraid1/home
Wykonujemy sprawdzenie systemu plików oraz resize:
serwer:/# e2fsck -f /dev/mapper/vgraid1-home
e2fsck 1.40-WIP (14-Nov-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vgraid1-home: 272/2097152 files (26.8% non-contiguous), 226212/4194304 blocks
oraz resize:
serwer:/# resize2fs /dev/mapper/vgraid1-home
I ponownie montujemy partycję:
serwer:/# mount /home
I tyle! Cieszymy się nowo uzyskanym wolnym miejscem na partycji home.
Brak komentarzy:
Prześlij komentarz