Dev mapper centos root как почистить
Недавно я обнаружил, что файловая система XFS стала коррумпированной из-за сбоя питания. (Система CentOS 7). Система не загрузится должным образом.
Я загрузился из резервной копии cd и попробовал xfs_repair , он сказал мне подключить раздел для работы с журналом.
Что я должен делать в этой ситуации? Что-то не так с моим спасательным компакт-диском (System Rescue CD, версия 4.7.1)? Есть ли какая-то другая процедура, которую я должен был использовать?
Я закончил просто восстановление системы из резервных копий (это было быстро и просто в этом случае), но я хотел бы знать, что делать в будущем.
1 ответ
mount: mount /dev /mapper /centos-root on /mnt /centos-root не удалось: структура нуждается в очистке
К сожалению, принудительное восстановление потребует обнуления (уничтожения) журнала перед попыткой ремонта. При использовании этого метода существует потенциал для получения более коррумпированных данных, чем первоначально предполагалось; однако мы можем использовать соответствующие инструменты xfs, чтобы увидеть, какой ущерб может быть причинен, прежде чем вносить какие-либо постоянные изменения.
Используя xfs_metadump и xfs_mdrestore , вы можете создать образ метаданных затронутого раздела и выполнить принудительный ремонт на изображении а не самого раздела. Преимуществом этого является возможность увидеть повреждение, которое приходит с принудительным ремонтом, прежде чем выполнять его на разделе.
Для этого вам понадобится достойный размер USB или внешний жесткий диск. Начните с установки USB-накопителя - мой USB был расположен в /dev/sdb1 , ваш может быть назван по-разному.
После установки запустите xfs_metadump , чтобы создать копию метаданных разделов на USB-накопителе, и ваш затронутый раздел может быть другим. В этом случае у меня был коррумпированный корневой раздел, расположенный в /dev/mapper/centos-root :
Затем вы захотите восстановить метаданные для изображения, чтобы мы могли выполнить ремонт и измерить ущерб.
Я обнаружил, что в режиме спасения xfs_mdrestore недоступен, и вместо этого вам нужно будет находиться в режиме спасения live CentOS CD.
Наконец, мы можем выполнить ремонт на изображении:
После того, как ремонт завершен, и вы оценили выход и потенциальный ущерб, вы можете определить, хотите ли вы выполнить ремонт с разделом.
Чтобы выполнить ремонт с раздела, просто запустите:
Не забудьте также проверить другие разделы на предмет коррупции. После ремонта перезагрузите систему, и вы сможете успешно загрузиться.
Помните, что флаг -L должен использоваться как последнее средство, где нет других возможных вариантов восстановления.
Рано или поздно на сервере может исчерпаться свободное дисковое пространство. Это в свою очередь приводит к неполадкам в работе програмного обеспечения.
Для своевременной реакции на такие случаи рекомендуем применять систему мониторинга zabbix, которая сообщает о проблемах на сервере, например о скором исчерпании свободного места.Тут мы видим, что на сервере N01 в разделе /mnt/data осталось мало места.
Команда df
Заходим на сервере по SSH и вводим команду df -h
Команда выводит информацию о занятости дисковых разделов. Параметр -h позволяет выводить информация в более «человеческом» формате.
Видим, что на в каталоге /mnt/data осталось всего 2Гб из 686Гб.
Команда du
Для определения виновника пожирания места в каталоге /mnt/data, вводим команду du -hs /mnt/data/*
Мы видим, что больше всего места занимает каталог /mnt/data/vm
Продолжаем исследование: du -hs /mnt/data/vm/*
Если бы файлов было много, то лучше бы было сразу отсортировать результат:
du -hs /mnt/data/vm/* | sort -rn
В данном случае, встает вопрос об увеличении дискового пространства. Для обеспечения корректной работы необходимо удалить несущественные файлы. Например, из каталога /mnt/data/ISO
Смотрим, что там у нас есть: du -hs /mnt/data/ISO/* | sort -rn
Выводы
Таким образом, мы определили главных виновников пожирания места, и готовы приступить к дальнейшим действиям: либо переместить/удалить какие-то файлы, уменьшить размер, добавить дисковое пространство и т.п.Решаем удалить все образы дистрибутивов из каталога /mnt/data/ISO, так как их при необходимости всегда можно закачать.
Проверяем, что у нас теперь с дисками:
Видим, что ситуация немного улучшилась. Система zabbix перестала ругаться на нехватку места. Но это временно :), поэтому идем покупать новые диски для установки на сервер.
Один из способов подстраховать сервер, сделать его более устойчивым к нагрузкам и защититься от ошибок нехватки памяти – добавить пространство подкачки т.е. речь идет о системе свопинга.
Своп (от английского swap) – область на накопителе, где операционная система может временно хранить данные, которые уже не держит в оперативной памяти. Swap, файл подкачки, механизм виртуальной памяти перемещающий отдельные фрагменты памяти из оперативной памяти на жёсткий диск, внешний накопитель, специально выделенный раздел или файл, тем самым выполняя своё предназначение и освобождая оперативную память для других активных фрагментов памяти.
Файл подкачки дает возможность увеличить объем информации, которую сервер может хранить в рабочей памяти. Но, с некоторыми оговорками. Чтение и запись в раздел подкачки медленнее, чем при использовании памяти, но это может поддержать, когда на сервере недостаточно оперативной памяти.
Без подкачки, в момент нехватки памяти, сервер может начать завершать процессы, чтобы освободить память, или даже аварийно завершить работу. Это может привести к потере данных или возникновению простоев.
Проверка системы на наличие и использование свопа
Прежде чем приступить, нужно проверить сводную информацию об использовании и доступности подкачки на устройстве хранения. С помощью команды swapon:
Если команда ничего не возвращает, значит файла подкачки не существует. В обратном случае, в терминал будет выведено нечто подобное:
то же самое, с выводом полного пути к файлу свопа, но вывести из содержания файла swaps:
Утилита free отобразит текущее использование памяти и подкачки:
Проверка доступного место для обмена и хранения данных
Важно убедится в наличии доступного места на носителе:
Для использования еще доступно 26G и этого достаточно.
Создать файла подкачки
Создать 1-гигабайтный файл подкачки указанного размера используя команду fallocate:
С помощью ls можно убедится в его наличии и в достаточном количестве зарезервированного пространства:
Подключение файла подкачки
Файл уже создан, но система еще не знает, что он должен использоваться для хранения и обмена. Нужно отформатировать этот файл как swap, а затем включить его. Но прежде, должны быть настроены права доступа, чтобы файл мог быть прочитан, только учетной записью root. Разрешение другим пользователям читать или писать в этот файл, было бы большой угрозой безопасности. Ограничиваются разрешения с помощью chmod:
Проверить, что у файла подкачки правильные разрешения, снова используя ls:
Теперь, файл подкачки стал более безопасным и можно указать системе пространство подкачки:
Указывается файл подкачки командой mkswap
Сразу включить файл подкачки
Файл подкачки готов к работе в качестве пространства подкачки, для его использования набрать:
В данный момент файл подкачки включен и при необходимости используется. После перезагрузки сервер должен автоматически включать для использования файл свопа. На подключение укажет строка дописанная в таблицу управляющую файловыми системами и разделами в файле fstab.
На этом этапе, есть вероятность получить следующую ошибку swapon failed: Invalid argument:
Пишет, что недопустимый аргумент, в этом случае поможет это CentOS 7 — failed: Invalid argument решение.
Подключение файла подкачки после загрузки системы
Чтобы файл подключался во время загрузки системы, в файл fstab
в нижней части, нужно добавить строку, указывающую операционной системе использовать файл подкачки автоматически:
Система проверяет эту таблицу во время каждого запуска и файл подкачки будет готов к использованию. Осторожно с форматированием, таблица довольно чувствительна.
Часто бывает такое, что место на сервере заканчивается, а что именно заняло драгоценное место, не ясно.
Буквально сегодня на одном из серверов нашего клуба приключилась похожая ситуация. 20 GB свободного места куда-то улетучились, пришлось чистить.
Скажу заранее, что я не являюсь сисадмином. Я простой пользователь, ну, может знаю чуть больше, чем простой пользователь, поэтому я не претендую на то, что всё нижеописанное, как единственный и безупречный вариант. Делаю как умею и как мне нравится.
И так, как очистить место на CentOS или Linux подобных системах?
Для начала нам необходимо узнать какие папки и файлы занимают больше всего места и самое главное! Нужно узнать где именно находятся те самые папки и файлы. Система то большая, просматривать каждую папку замучаешься.
Для работы нам нужна консоль.
Так же подойдет и Shell-клиент, если у вас панель ISPmanager. Я буду использовать Shell-клиент, т.к. привык к Windows и привык видеть папки и файлы. Вводить в консоль команды и убивать то, чего не вижу, не очень люблю.
1. Первым делом необходимо выполнить команду для получения текущего состояния дискового пространства и всех разделов на сервере.
Команда:
Мы получили информацию:
- Общий размер диска
- Занятое место на диске
- Свободное место на диске
2. Далее нам необходимо определить, какие папки занимают больше всего места.
Команда:
Мы получили информацию:
- Имена папок
- Занимаемое место на диске
Как видим, основное место на сервере занимает папка var.
3. Нам нужно перейти в папку var
Команда:
Команда:
Собственно на этом всё и заканчивается. Просто движетесь таким образом и смотрите на папки, которые занимают больше всего места.
Как правило, больше всего места занимают файлы с логами. Просто чистите их и всё. В этом и вся суть, главное как говориться найти нужные файлы.
Читайте также: