Linux — файловые системы ext3 и ext4

Zerox Обновлено: 08.09.2019 Debian, Linux 17 комментариев 29,507 Просмотры

Подготовка диска

Переходим к практике. Перед тем как начать непосредственно разметку, необходимо подготовить HDD с установленной Windows. Процесс, который мы будем выполнять, называется сжатие. Дело в том, что изначально неразмеченного пространства нет, поэтому нужно сделать его самостоятельно. Сжимать удобно средствами старой ОС, так как Ubuntu может запросто стереть все установленные файлы с диска C, а вместе с ними и систему.

На новых Windows часто предоставляется один диск C, а диска D нет вообще. Это не очень удобно, поскольку работая с этим разделом, вы рискуете оставить компьютер без операционных систем и уничтожить все данные. Поэтому перед началом всех действий стоит сделать резервную копию и сохранить её на диске или флешке. После этого можно спокойно приступать к сжатию.

С какой целью создавались распределенные файловые системы и какие задачи они решают

Во-первых, как уже указывалось, они нужны для защиты от сбоев и облегчения масштабирования СХД. Большое значение имеет API (Application Programming Interface), который они обеспечивают. Это значит, что каждое приложение, скрипт или библиотека стандартных подпрограмм, написанные в течение последних нескольких десятков лет, могут использовать распределенную файловую систему без коррекций их кода, без процедур импорта и экспорта данных. Даже такие решения, как SQL, не могут сравниться с универсальностью и простотой API распределенных файловых систем.

При производстве анимационных фильмов модели сцен и рендерные части в процессе производства почти всегда централизованно хранятся в распределенной файловой системе.

Виртуальные «блочные устройства» в облаке на самом деле часто являются файлами в распределенной файловой системе.

Системы распределенных вычислений в крупных научных лабораториях, таких как ЦЕРН, часто состоящие из более чем 100 тысяч процессоров, используют распределенные файловые системы для хранения данных экспериментов и результатов их обработки.

Можно сказать, что распределенные файловые системы – это то, как сегодня хранятся большинство данных, особенно «неструктурированных», которые используются при анализе «больших данных» (Big Data). Без этих систем провайдерам было бы очень сложно предоставлять различные онлайновые и медиауслуги.

Как пример можно было бы привести неудачу широко рекламировавшейся в свое время услуги «интернет-телевидения» (IPTV). Для того, чтобы ей воспользоваться, нужно было провести ряд сетевых настроек, которые любому IT-шнику могут показаться элементарными (например, «маска подсети» и пр.), но для простого обывателя они являлись отпугивающим фактором, несмотря на возможность смотреть «100 фильмов за 100 рублей в месяц». В результате эта услуга, что называется, «не пошла». Распределенные файловые системы с удобным интерфейсом как раз и помогают решить эти проблемы. Пример – любой популярный видеохостинг, либо пакет онлайн-телевидения от интернет-провайдера (например, «ОнЛайм» от Ростелекома).

Читайте также:  Как примонтировать «флешку» в Linux

Для различных предприятий и организаций распределенные файловые системы помогут решить проблемы управления данными и снизить стоимость хранения данных.

Проверка на наличие ошибок

Проверить диск на наличие ошибок можно не только на Windows. Убунту также обладает достаточным арсеналом для этого. Сделать это можно и с помощью команд, и пользуясь специальным приложением. Сначала разберём способ, использующий стандартные средства.

Просматриваем список накопителей:

fdisk –l

Проверяем конкретный накопитель:

hdparm -i /dev/sdf | grep Model

В примере взят sdf, но у вас название диска может отличаться.

Если том был примонтирован, то перед тем, как проверять, это действие нужно отменить:

umount /dev/sdf1

Теперь проверяем том на бэдблоки — проблемные области:

badblocks -s /dev/sdf1 > /root/badblock

Прогресс выполнения будет отображаться в процентах.

Теперь отмечаем бэдблоки, чтобы система перестала их использовать:

e2fsck -l /root/badblock /dev/sdf1

Такой способ в теории должен помочь исправить неполадки с любыми видами носителей. Если же сканирование дисков на ошибки не помогло, то пора воспользоваться удобной утилитой — GParted.

Выводы

В одной из предыдущих статей мы рассмотрели как выполняется разметка диска с помощью parted. Из этой статьи вы узнали все что нужно о работе с файловой системой. Теперь у вас не возникнет проблем если у вас вдруг не будет доступа к графическим утилитам и нужно будет исправлять ошибки или настраивать файловую систему. Если остались вопросы, спрашивайте в комментариях!

Примечание. Изменение размера файловой системы на разделе диска может быть опасным и привести к потере данных. Убедитесь, что у вас есть резервная копия, прежде чем выполнять действия, описанные ниже.

Предостережения

1. Файловая система, размер которой вы хотите изменить, должен находиться на последнем разделе диска. В этом случае потери данных не происходит, поскольку мы воссоздаем раздел, не уничтожая фактические данные на нем. 2. Если это не последний раздел, вы должны уничтожить данные и воссоздать новый раздел с желаемым размером.

Расширение файловой системы на основе разделов

Выводы

1. Сначала проверьте существующий размер файловой системы.

Устанавливаю Ubuntu рядом с Windows 7, причем хочу, чтобы не потерялись данные. Проблема возникает на этапе уменьшения размера диска, чтобы создать раздел для ubuntu. Пробовал изменять файловую систему как во время установки, так и через GParted , загрузившись в Ubuntu. Вот текст ошибки:

Читайте также:  Mandriva Linux. Полное руководство пользователя, страница 11

Как-то странно разделы отображаются в Ubuntu: разделы D, E, L выглядят как один. В разделе L у меня 60 Гб свободно, а я уменьшаю объем на 40.

Всего у меня 6 разделов в Windows: зарезервированный для Bitlocker 1 мб, зарезервированный системой 100 мб, раздел с системой (диск С в wibdows) и 3 пользовательских раздела. В Linux же я вижу только 4. Что я делаю не так и как создать раздел для Linux без потерь данных?

Просмотр статуса файловой системы

Естественно, вам захочется настроить базовые параметры файловой системы, такие как распределение дискового пространства, контрольные точки безопасности и заданный уровень производительности. В арсенале GNU имеется множество инструментов для работы с файловой системой. Наиболее распространенные команды – это df, du, fsck иfdisk, а также iostat и sar (эти команды не столь популярны, но не менее полезны).

Команды du и df

Команды df и du используются для получения информации об использовании диска и свободном дисковом пространстве. Команда du -csh /var показывает размер файлов в директории /var. Если необходимо получить информацию о вложенных поддиректориях директории /var, то нужно выполнить команду du -h.

# du -csh /var 73M /var 73M total

Команда df -h выводит информацию об использовании файловыми системами дискового пространства для всех точек монтирования в удобочитаемом (-h) формате:

# df -h File System Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 37G 32G 10% / /dev/sda1 99M 12M 82M 13% /boot tmpfs 506M 0 506M 0% /dev/shm

Команда fsck

Команда fsck используется для проверки файловой системы и при необходимости ее восстановления. Например, если вам необходимо проверить на наличие ошибок раздел, расположенный на устройстве /dev/sda2, то введите команду fsck /dev/sda:

# umount /var # fsck /var fsck from util-linux-ng e2fsck (17-May-2010) /dev/sda3: clean, 702/192000 files, 52661/768000 blocks

Примечание. Эту команду следует запускать на несмонтированной файловой системе.

В вышеприведенных примерах все задачи выполнялись в однопользовательском режиме. Раздел /var, расположенный на устройстве /dev/sda3, сначала был демонтирован. Команда fsck не обнаружила каких-либо ошибок, в противном случае она попыталась бы исправить их.

Команда iostat

Команда iostat выводит статистику дисковых операций ввода/вывода.

$ iostat Linux (DemoServer) 12/19/2011 avg-cpu: %user %nice %system %iowait %steal %idle Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1759192 1139038 sda1 2254 22 sda2 1756658 1139016 dm-0 1755178 1139016 dm-1 920 0 hdc 144 0 fd0 16 0

В этом примере демонстрируется, как можно использовать команду iostat для получения информации об операциях чтения/записи, а также общей статистики. Обратите внимание на то, что по умолчанию эта команда выводит информацию об операциях чтения/записи для всех устройств, а в верхней строке отображает общую статистику использования.

Команда sar

Команда sar выводит значения системных счетчиков, подобно программе Performance Monitor операционной системы Windows. Команду sar можно использовать для отображения прошлых значений или для вывода счетчиков в реальном времени:

$ sar 4 5 Linux (DemoServer) 12/19/2011 12:20:20 AM CPU %user %nice %system %iowait %steal %idle 12:20:24 AM all 12:20:28 AM all 12:20:32 AM all 12:20:36 AM all 12:20:40 AM all Average: all

В этом примере команда sar выводит пять значений счетчиков, обновляемых через каждые 4 секунды.

Настройка системы для организации отдельных каталогов root для каждого пользователя

Вы узнали в деталях, как можно реализовать частные пользовательские файловые системы, включая действия, которые необходимо выполнить при входе пользователя в систему. В данном разделе вы найдете более полные скрипты, используемые при создании учетных записей пользователей и во время загрузки системы.

В листинге 4 показан пример скрипта, используемого при создании любой учетной записи пользователя.

  • -umount/
  • -fajlovyh-sistem-komanda-mount-v-linux/
  • -diska-v-linux
  • -mount-namespaces/

Проверить нагрузку на диск

Теперь немного поговорим о том, как измерить или посмотреть нагрузку дисков. Иногда видно, что сервер явно очень сильно тормозит. При этом смотришь загрузку CPU и доступную память — всего в избытке, но приложение еле шевелится. Конечно, с нормальным мониторингом вы быстро поймете, что у вас проблемы с диском, но если мониторинга нет, то можно в консоли быстро оценить обстановку с помощью некоторых утилит.

Я предлагаю использовать небольшой пакет утилит sysstat. Ставим его.

# apt install sysstat

Проверить нагрузку на диск

Дальше запускаем iostat с параметрами.

# iostat -xk -t 2

Нас в первую очередь будет интересовать последний столбец %util. Чем больше он стремится к 100%, тем выше нагрузка на диск. Если она очень высокая, вы захотите узнать, какой процесс больше всего нагружает диск. Это можно узнать с помощью pidstat.

# pidstat -d 1

Видим, что основную нагрузку на диск генерирует процесс mysqld. Можем отдельно последить за ним. Для этого надо узнать его pid и запустить pidstat для конкретного процесса.

Проверить нагрузку на диск

# pidstat -p `pgrep mysqld` -d 1

Так мы можем мониторить дисковую активность конкретного процесса.

Так же для наглядного мониторинга загрузки диска мне нравится использовать программу dstat.

# apt install dstat # dstat —top-bio

Она в реальном времени показывает дисковую нагрузку конкретных приложений. Есть еще похожая команда.

Проверить нагрузку на диск

# dstat —top-io

Если я правильно понял описание, первая показывает скорость доступа к реальным устройствам, а вторая в том числе кэши и всякие виртуальные файловые системы. Возможно я ошибся, вот описание из документации:

—top-bio show most expensive block I/O process —top-io show most expensive I/O process

Программа dstat показывает не только загрузку дисков. Ее можно использовать для комплексного наблюдения за системой. Например вот так.

# dstat -tldnpms 10

Проверить нагрузку на диск

При этом будет выводиться: