Как увеличить размер каталога /var?
Первый вопрос:
Когда я бегу df -h
Я вижу это:
# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad4s1a 9.7G 8.0G 918M 90% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/ad4s1d 1.8T 6.7G 1.6T 0% /home
procfs 4.0K 4.0K 0B 100% /proc
linprocfs 4.0K 4.0K 0B 100% /usr/compat/linux/proc
devfs 1.0K 1.0K 0B 100% /var/named/dev
Почему он не показывает каталоги, как:
/var
/etc
/usr
? На моем ранее выделенном сервере я мог просматривать каждый доступный размер раздела, но здесь я получил только /home
а также /
...
Второй вопрос:
Как я могу увеличить /var
Размер раздела? Потому что после 2 часов работы этот раздел стал полным...
5 ответов
Команда df сообщает об использовании дискового пространства файловой системой. Ваш /var
/etc
а также /usr
не являются отдельными файловыми системами, они являются частью /
файловая система. У вас есть только 2 файловые системы /
а также /home
,
Если вы можете переустановить систему, вы можете изменить разделы, чтобы создать /var
файловая система подходящего размера.
Если вы не можете, то вы можете попробовать создать ссылку /var
->/home/var
но особенности того, как это сделать, зависят от того, какой у вас доступ к системе.
Как уже упоминалось выше, вы не можете увеличить /var
насколько это не отдельная ФС. Но вы можете переместить его из /
на большую ФС вроде /home
, Единственное предложение - использовать dump/restore
вместо этого переместить текущее содержимое / var в новое место mv
или же tar
вуду. Это сохраняет не только права владения и разрешения, но и так называемые "флаги", такие как schg / uchg для / var / empty. Также я хочу, чтобы вы не создавали hardlink /home/var -> /var, поскольку / home и / находятся в разных разделах. Как правило, все можно сделать так:
# mkdir /home/var
# cd /home/var
# dump 0af - /var | restore rf -
# chflags -R nouchg,noschg /var
# rm -r /var
# ls -s /home/var /var
Конечно, все вышеперечисленное требует однопользовательского режима или, если он недоступен, сначала нужно остановить все демоны, которые используют / var - например, sendmail или mysql.
Другая хорошая практика - убирайте не весь / var, а только dir, который имеет тенденцию расти. Таковы / var / db / mysql, / var / log и / var / mail. Я предпочитаю создавать для них отдельные дома - / usr / home / log, / usr / home / mysql и / usr / home / mail и так далее. Таким образом, директории связаны с их обычным местоположением в / var, чтобы предотвратить настройки программного обеспечения.
Почему он не показывает каталоги, как:
Потому что у них нет собственной файловой системы на этом компьютере, но они являются подкаталогами /
,
На моем ранее выделенном сервере я мог просматривать каждый доступный размер раздела, но здесь я получил только /home и /...
Потому что у вас есть только те, предположительно.
Как я могу увеличить размер раздела /var? Потому что после 2 часов работы этот раздел стал полным...
Ты не можешь, потому что у тебя нет /var
раздел.
Если вы добавите еще один диск, вы можете переместить все /var
на этот диск и смонтировать его как /var
,
Редактировать: я только что видел /home/
почти пусто Итак, переместите все свои вещи под /var
в /home/var
и заменить /var
по символической ссылке. Возможно, вам придется сделать это в однопользовательском режиме или из системы спасения.
Я бы взял немного другой подход к тому, что было предложено до сих пор, просто потому, что мне не нравятся символические ссылки внутри /var
, Как и прежде, создайте новый каталог в /home
чтобы хранить данные, которые вы хотите переместить, и скопировать данные.
Вы можете использовать nullfs
точка монтирования для монтирования реального каталога (например, /home/var/db/mysql
) к месту, в котором это ожидает программное обеспечение:
mount -t nullfs /home/var/db/mysql /var/db/mysql
В /etc/fstab
Вы хотели бы это:
/home/var/db/mysql /var/db/mysql nullfs rw 0 0
Обратите внимание, что для этого подхода вам нужно options NULLFS
в вашем ядре, или вам нужен модуль ядра nullfs.
Что касается системы, она может получить доступ к содержимому /home/var/db/mysql
через /var/db/mysql
точно как обычно. Этот подход также означает, что такие утилиты, как stat(1) и realpath(1) будут сообщать пути как /var
и не под /home/var
,
Вы можете сделать это с помощью простой команды.
Обратите внимание, что приведенные ниже команды выделяют свободное пространство только для папки VAR.
Сначала проверьте место на диске, используя команду ниже.
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/system-var 9.1G 4.1G 4.5G 48% /var
Теперь запустите команду ниже, чтобы проверить свободное место.
root@abc: vgs
VG #PV #LV #SN Attr VSize VFree
system 1 6 0 wz--n- 79.52g 28.30g
Он показывает свободные места в системе и запускает команду ниже, чтобы увеличить размер.
lvextend -L +1G /dev/mapper/system-var
эта команда увеличит пространство на 1 ГБ в папке VAR
Extending logical volume var to xxx.xx GiB
Logical volume var successfully resized
Теперь запустите команду ниже
resize2fs /dev/mapper/system-var
Теперь проверьте размер папки VAR, выполнив следующую команду:
df -h
Выход будет
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/system-var 11G 4.1G 5.5G 43% /var
Надеюсь, это сработает.