|
Навигация
|
Главная » Sql System Administration Toolkit: Перемещение файловой системы в UNIXИсточник: IBM developerWorks Россия Мартин Браун Перемещение каталога или файловой системы в UNIXСуществует много ситуаций, когда может понадобиться переместить файловую систему в UNIX с одного физического устройства (логического раздела жесткого диска) на другое, к примеру, если перемещаются некоторые данные с текущей файловой системы в новый логический раздел, чтобы освободить на текущей файловой системе место, и попутно на новом разделе для этих данных создается и монтируется файловая система. Такую операцию можно провести как на однопользовательской системе, так и на работающей многопользовательской, где надо гарантировать, что в процессе перемещения данные не потеряют доступность.В последнем случае (перемещение работающей файловой системы), может понадобиться перемещать приложение в то время, когда оно работает. В любом случае нужно переместить каталоги с системными файлами системы, такие как /usr или /var, и независимо от того, работает компьютер в однопользовательском режиме или нет, эти файлы системы могут активно использоваться. При любой операции перемещения файловой системы необходимо убедиться, что данные были корректно скопированы в новое место. В листинге 1 1 показано разбиение жесткого диска на разделы и размещение файловой системы. Листинг 1. Пример использования файловой системы и жесткого диска
Как можно увидеть из листинга 1, корневая файловая система на 84% заполнена, и администратору, возможно, придется переместить каталог из корневой файловой системы на другой логический раздел, чтобы освободить в корневой файловой системе немного места. В таком случае лучше всего перемещать один большой каталог определенного назначения, который оказывает большое влияние на файловую систему, поскольку тогда в файловой системе будет освобождено значительное количество дискового пространства. В данном случае нужно переместить каталог /var или /usr во вновь созданную файловую систему. Перемещение маленьких каталогов, пусть их и много, будет неэффективным: для освобождения дискового пространства проще переместить один, но большой каталог. В некоторых ситуациях придется копировать в новое место логический раздел целиком (например, в случае выхода из строя жесткого диска). В таком случае администратору не придется выбирать, какие данные копировать в новую файловую систему. Я предполагаю, что у читателя уже есть либо новый жесткий диск, либо чистый раздел на жестком диске, который будет использоваться для копирования каталогов или файловой системы. Последовательность действий при перемещении данныхБазовая последовательность действий при перемещении файловой системы или перемещении каталога в новую файловую систему будет такова:
Давайте подробнее рассмотрим перечисленные выше действия. Создание нового логического раздела и файловой системыПрежде чем создать новый логический раздел и файловую систему, необходимо убедиться что того пространства, которое будет отведено под новый раздел, хватит для файлов, которые будут скопированы в новую файловую систему, когда она будет смонтирована на этот раздел. Например, если необходимо переместить каталог /usr текущей файловой системы, нужно пользоваться командой из листинга 2.Листинг 2. Перемещение каталога /usr из текущей файловой системы
Опция -s гарантирует, что отобразится общий размер каталога в целом, а не размер элементов его содержимого по отдельности, а опция -k отвечает за то, чтобы размер каталога отображался в килобайтах. Из информации, предоставленной командой, можно предположить, что новый раздел должен быть размером по крайней мере в 4 Гб.Если будет выполнено перемещение текущей файловой системы, а не отдельного каталога из текущей файловой системы, в раздел большего, чем необходимо размера, то для определения размера текущей файловой системы надо использовать команду df .После того как мы определили размер текущей файловой системы, надо создать логический раздел, который на 25% больше, чем необходимо (по крайней мере новый логический раздел должен иметь запас на 10% больше, чем необходимо). Например, для файловой системы из примера выше размер нового раздела должен быть не менее 5 Гб. Чтобы создать новый раздел и файловую систему, используются стандартные утилиты операционной системы. Например:
Для примера с /usr выше я создал новый каталог /mnt/usr.tmp, в котором и смонтировал файловую систему. Копирование данныхКопирование данных является, наверное, самым простым этапом перемещения файловой системы, однако от выбора инструмента для этого этапа зависит, как эффективно будут передаваться данные. Чтобы убедится в том, что нужные данные не будут случайно перезаписаны при копировании, проверьте, что копируете информацию в нужное место.Копировать можно множеством разных способов. Двумя самыми распространенными являются использование утилит cp или tar . Первая команда выполняется с очень большой скоростью, но при работе с ней могут возникнуть проблемы с нестандартными файлами, такими как конвейеры и файлы устройств. Утилита tar более медленная, но поддерживает все типы файлов и выводит отчет о процессе копирования.Какой бы метод ни использовался, нужно проверить, что файлы на исходной файловой системе больше не обновляются. Необходимо учитывать, что любая сделанная копия содержит версию данных на момент своего создания. Если в момент создания копии данные обновлялись, то копия этих данных на новой файловой системе может быть либо неполной, либо вообще неработоспособной. Использование cpИнструментcp поддерживает рекурсивную опцию -r , которая копирует все файлы, каталоги и их вложенные файлы в целевой каталог. Чтобы сохранить права доступа и имена собственников для копируемых файлов можно использовать опцию -p . Это очень важно, если надо, чтобы новая файловая система сохраняла параметры безопасности исходной файловой системы. Однако есть ситуации, когда сохранение деталей безопасности не требуется.Чтобы скопировать файлы из существующего каталога в новый каталог, выполните следующие шаги:
ls (см. листинг 5). Методики, предоставляющие более подробную информацию, я рассмотрю позже.Листинг 5. Верификация скопированных файлов
Если выяснится, что некоторые файлы скопированы некорректно, или если символьная ссылка и другие специальные типы файла скопировались некорректно, можно попробовать использовать tar .Использование tarУтилитаtar имеет ряд преимуществ по сравнению с cp . Первое и самое главное - tar лучше поддерживает нестандартные типы файлов. Второе преимущество состоит в том, что tar в онлайне выводит отчет о файлах, которые обрабатывает (это удобно для копирования файлов с одной файловой системы на другую). Последнее основное преимущество - tar можно использовать для создания резервной копии исходной файловой системы, которая пригодится в случае проблем с жестким диском. На однопользовательском компьютере при помощи tar можно создавать новую файловую систему со всем содержимым без предварительного монтирования ее во временный каталог.Лучший способ использовать tar для копирования данных - передать файл, созданный этой утилитой, через другую выполняющуюся утилиту tar в новый каталог, в котором вторая утилита tar выполнит его распаковку. Это действие показано в листинге 6.Листинг 6. Использование tar для копирования
Аргумент c в первой команде tar говорит, что tar должен создать архив. Опции v , f , и p обеспечивают подробную информацию (выводят файлы, которые были добавлены в архив или извлечены из него), осуществляет запись в файл или чтение из файла (файл используется вместо магнитной ленты) и сохраняет все права доступа и имена собственников соответственно.Листинг 6 работает потому, что вторая часть команды меняет рабочий каталог, прежде чем читать файл .tar, который был создан первой половиной команды. Если нужно создать файл .tar и впоследствии использовать его, а не выполнять прямое копирование, то файловая система должна быть достаточно вместительной, чтобы хранить все эти временные файлы с исходного каталога. Листинг 7 показывает процесс копирования. Листинг 7. Процесс копирования
Какой бы метод работы с tar ни использовался, применение опции v предоставит отчет о каждом файле, который добавлен в архив или извлечен из него (см. листинг 8).Листинг 8. Вывод информации о процессе копирования
tar и непосредственное копирование файловой системыЧтобы скопировать содержимое файловой системы в новое место на жестком диске, не создавая временной точки монтирования в этом месте, потребуется пространство для хранения всех файлов исходного каталога.При монтировании в каталог новой файловой системы:
Листинг 12. Изменение логического раздела существующей файловой системы
Это операция вполне безопасна, поскольку у нас есть точная копия исходной файловой системы на старом логическом разделе. В любом из приведенных выше решений исходная копия файловой системы с данными не удаляется. Проверка копииИспользуете выcp или tar , всегда необходимо проверять, успешным ли было копирование. Хотя tar и выводит подтверждение, что файл был скопирован (при помощи опции v ), все-таки следует убедиться, что файлы были корректно скопированы в новую файловую систему.Сначала проверим информацию, которую выведет команда du для старой и новой файловой системы (см. листинг 13). Листинг 13. Результаты работы du
Два числа для двух файловых систем должны быть идентичными; однако в зависимости от типа новой файловой системы, занимаемого каталогами и файлами места на старой и новой файловых системах, можно заметить небольшую разницу в размерах. Другим хорошим тестом является сравнение числа файлов и каталогов в исходной и новой файловой системе. Осуществить подсчет файлов можно командой find , как показано в листинге 14.Листинг 14. Сравнение числа файлов/каталогов в новой и исходной файловой системе.
Другой хорошей проверкой после копирования файловой системы является сравнение числа inode-файлов в исходной и новой файловых системах; эта проверка покажет, сколько inode-файлов было распределено для новой файловой системы. Если новая файловая система такого же типа что и исходная, количество inode-файлов для каждой файловой системы должно быть одинаково. Используйте df с опцией -i для получения статистической информации об inode-файлах или - на традиционных UNIX-системах - df без каких-либо опций покажет число созданных "файлов".Листинг 15 выполнен в Linux-системе Листинг 15. Сравнение числа inode-файлов
Листинг 16 осуществлен в ОС Solaris. Листинг 16. Сравнение числа inode-файлов в ОС Solaris
Завершение установки файловой системыК этому этапу у вас должна уже быть новая файловая система, которая содержит копию старой файловой системы или каталога из старой файловой системы. Теперь надо обновить системные файлы ОС (особенно информацию о смонтированных файловых системах) для поддержки новой файловой системы. Эта информация хранится в файлах /etc/fstab, /etc/vfstab или может быть доступна через специальную утилиту для администрирования, например, SAM в HP-UX.Если в пределах существующей файловой системы вами был перемещен каталог, то:
Если перезагрузить невозможно, то следует вручную смонтировать новую копию системы в новую точку монтирования, а затем перезагрузитесь, как только представится возможность. Сразу после перезагрузки и получения подтверждения, что все работает нормально, можно удалить старый каталог или повторно использовать старый раздел. ЗаключениеСуществует очень много ситуаций, когда требуется скопировать файловую систему, иногда даже работающую. Это может произойти из-за нехватки места для установки различных приложений текущей файловой системе или из-за сбоя работы жесткого диска. В любой из этих ситуаций для копирования файлов из старой файловой системы в новую необходимо использовать приемы, описанные в этой статье.Конечно, и здесь есть "подводные камни" - копировать работающую файловую систему может быть рискованно, особенно если в ней присутствуют открытые файлы. Следует быть осторожным, чтобы гарантировать, что никакие уже существующие на новом разделе файлы не будут случайно перезаписаны при процессе копирования. Однако при помощи приемов, описанных в этой статье, можно эффективно копировать файлы работающей системы на новый, больший по емкости раздел и успешно пользоваться им. Oracle начинает продажи Oracle Big Data Appliance. Новый SQL Server 2012. Использование хэш-ключей в базах данных. Работа с регулярными выражениями в SQL Server. dbms_utility.format_error_backtrace - отслеживание ошибок в pl/sql. Главная » Sql |
© 2024 Team.Furia.Ru.
Частичное копирование материалов разрешено. |