Linux файловая система для oracle

OCFS2: Недооцененная файловая система Linux

Общеизвестно, что в Linux есть значительное количество файловых систем. Некоторые из них недооценены и могут быть весьма полезными не только в тех сферах, для которых они предназначались. Система OCFS2 является кластерной файловой системой, которую первоначально выпустила фирма Oracle и которая может стать замечательной основой для файловой системы общего назначения, где требуется совместный доступ к данным.

В последнее время я говорил о серверах NAS, уделяя особое внимание сетевой файловой системе NFS. Одним из сложных вопросов, связанных с сервером NAS, является его расширение, как по емкости, так и по его производительности. Во многих ситуациях вы ограничены тем объемом хранения, который предоставляется сервером / хранилищем данных, зависящих от имеющихся аппаратных средств, но почти во всех случаях вы еще ограничены одним шлюзом NFS, а это обусловлено тем, что на сервере используется локальная файловая система (Примечание: Есть исключения, но они являются проприетарными и во многих случаях стоят больших денег). Не правда ли, было бы замечательно, масштабировать хранилище данных по мере необходимости и увеличивать число шлюзов NFS (или даже шлюзов CIFS)? Одним из подходов к этому будет использование кластерной файловой системы.

Кластерная файловая система является системой, которая одновременно устанавливается на нескольких серверах. При этом предполагается наличие какого-нибудь общего диска (общего хранилища), которым, как правило, является устройство SAN или внешний RAID массив, благодаря этому серверам обеспечивается прямой доступ к диску на уровне блоков. Можно легко представить проблемы с кластерной файловой системы в случае, когда несколько серверов одновременно пытаются получить доступ к одному и тому же файлу или одной и той же части файла. Чтобы это предотвратить, в кластерной файловой системе, как правило, реализован особый механизм одновременного доступа к файлу или к части файла. Обратите внимание, что этот механизм отсутствует в обычных локальных файловых системах. Таким образом, кластерные файловые системы могут быть сложнее, чем локальные файловые системы.

Предоставление доступа к хранилищу данных с серверов осуществляется по протоколу на уровне блоков. Типичными протоколами являются SCSI (обычно используется при совместном доступе к внешнему массиву RAID), ISCSI, ATA поверх Ethernet, InfiniBand и Fibre Channel (оптоволоконный канал). В Linux поддерживаются все эти протоколы, но некоторые аппаратные устройства могут не поддерживаться в Linux. Очень простым примером является OpenFiler (на нашем сайте вы можете прочитать статью об этом дистрибутиве — «OpenFiler — сетевое хранилище на свободном ПО»), в котором поддерживается протокол iSCSI, обеспечивающий доступ к хранилищу данных из серверов, использующих кластерную файловую систему.

Одной из таких кластерных файловых систем в Linux является система OCFS2 («Oracle Clustered File System – 2» — Кластерная файловая система фирмы Oracle — 2). Файловая система была разработана на основе системы OCFS, которая полностью фокусировалась на требования систем хранения, использующих базы данных. В OCFS2 добавлено соответствие POSIX и есть другие возможности, которые очень полезны при совместном доступе к данным без использования баз данных. Давайте кратко рассмотрим систему OCFS2, но начнем с системы OCFS.

OCFS (Oracle Clustered File System — Кластерная файловая система фирмы Oracle)

Фирма Oracle разработала систему OCFS как файловую систему совместного доступа к дискам, предназначенную для использования с кластерными базами данных фирмы Oracle. Это означает, что хотя она и весьма полезна, ее применение ограничено из-за отсутствия совместимости с POSIX (если совместимость для вас важна — смотрите). Система была разработана в соответствии с лицензией GNU Public License (GPL), и, хотя она никогда не была частью ядра, она используется в Linux теми, кому требуется Oracle. Но эта система была заменена системой OCFS2.

Система OCFS2

Система OCFS была заменена системой OCFS2, в которой добавлена совместимость с POSIX, что сильно расширило область применения системы. Одно из преимуществ OCFS2, помимо обеспечения совместимости с POSIX, состоит в том, что она была интегрирована в ядро 2.6.16. Пометка «experimental» («Экспериментальная») была убрана с системы OCFS2 в версии ядра 2.6.19.

На разработку конкретных элементов файловой системы OCFS2 оказала влияние файловая система ext3, но, в отличие от ext3, все элементы системы OCFS2 имеют собственную реализацию. Например, в системе используется понятие экстентов (extents), которое есть в системе ext4. В добавок, вместо того, чтобы использовать свою собственную подсистему журналирования, в ней первоначально использовалась система JBD , имеющаяся в Linux (Journaling Block Device — журналирование устройств с поблочным доступом). JBD является 32 битовой, что ограничивает размер системы OCFS2 в 2 ^ 32 * блока. Если размер блока 4KB, то это означает, что размер OCFS2 ограничен 16 Тб.

Читайте также:  Windows для ноутбук lenovo ideapad l340 15api

В ядре 2.6.28 система OCFS2 была переведена на использование слоя журналирования JBD2, в котором преодолено 32-битовое ограничение JBD. Как сообщает Сунил Машран (Sunil Mushran ), разработчик OCFS2, к моменту написания данной статьи, поддержка файловых систем, имеющих размер больше 16 ТБ, еще до сих пор полностью не включена. Теоретически размер файловой системы может быть больше 16 Тб (теоретически предел составляет около 4 Петабайт), но, согласно Сунилу, система не тестировалась на размерах, больших 16 ТБ. Вместе с тем он считает, что в этом году будет реализована поддержка файловых систем, размер которых больше 16 Тб.

Одной из ключевых особенностей OCFS2 является менеджер блокировок. Распределенный менеджер блокировок играет роль инспектора ГИББД в тех случаях, когда разные процессы пытаются получить доступ к одному и тому же файлу или диапазону данных. В сущности менеджер блокировок предоставляет процессам доступ к различным частям файлов только на чтение или на запись. В результате предотвращается возможность перезаписи данных различными процессами, что недопустимо. Менеджер блокировок поставляется с системой OCFS2 с самого ее появления, является ее неотъемлемой частью и не снижает характеристик системы. Обычно менеджер блокировок называется DLM (Distributed Lock Manager — Распределенный менеджер блокировок), есть несколько менеджеров DLM, и один из них — в OCFS2.

Создание менеджера блокировок, работающего в распределенной среде, может показаться простым делом, хотя таким оно, определенно, не является. Одна из основных причин в том, что менеджер должен правильно работать в сети, в которой возможны задержки при выполнении администрирования. Кроме того, менеджер должен правильно работать при добавлении или удалении узлов, для групп узлов, а также должен быть адаптирован к случаям, когда узел, который заблокирован, вышел из строя (но, возможно, возобновит работу). Это нетривиальная задача, но она является ключевой в кластерных файловых системах.

В OCFS2 имеется широкий спектр дополнительных возможностей, перечисленных ниже.

  • Система OCFS2 нейтральна к используемым кодировкам, допускаются кодировки little endian (например, x86 и x86_64) и big endian (например, PowerPC), а также 32-битовые и 64-битовые кодировки.
  • Система поддерживает ввод/вывод с прямым доступом (direct IO), асинхронный ввод/вывод (asynchronous IO), буферированный ввод/вывод (buffered IO), ввод/вывод вида splice (добавлено в версии 1.4) и ввод/вывод с отображением в память (memory mapped IO).
  • Система поддерживает большие иноды, что хорошо для маленьких файлов, поскольку файлы можно хранить в самом иноде (улучшается производительность).
  • Система отслеживает время модификации файлов (mtime), время доступа к файлам (atime) и время модификации атрибутов файла (ctime). Можно также использовать относительное время доступа к файлу (relative access time).
  • Поддерживаются режимы журналирования вида ordered и writeback
  • Поддерживаются права доступа в стиле Unix, а также списки контроля доступа (ACL).
  • В ядре 2.6.29 добавлено использование контрольных сумм метаданных (снижает вероятность разрушения метаданных).
  • В системе поддерживается использование блоков различного размера (512 байтов, 1 КБ, 2 КБ и 4 КБ), рекомендуемый размер — 4 КБ.
  • Система позволяет выделять для хранения данных блоки различного размера (размер единичного блока, выделяемого под хранение файловых данных). В версии 1.4 системы OCFS2 разрешается использовать следующие размеры: 4 КБ, 8 КБ, 16 КБ, 32 КБ, 64 КБ, 128 КБ, 256 КБ, 512 КБ и 1 МБ. Рекомендуемый размер — 4 КБ.

В OCFS2 есть также набор пользовательских инструментальных средств. Имеется два пакета: ocfs-tools , который является интерфейсом командной строки, и ocfs2console , который представляет собой графический интерфейс. В документации по конфигурированию кластерной файловой системы предлагается использовать графический интерфейс, но многие настройки, описываемые в HOWTO, делаются вручную (конфигурационный файл читается сравнительно просто).

Хотя OCFS2 является кластерной файловой системой, диски можно монтировать как кластерные тома или как локальные (используемые на одном узле) тома. Если вам потребуется повысить производительность, вам, возможно, нужно будет добавить еще узлы в кластер OCFS2. Добавление узла к существующей системе выполняется довольно легко. Согласно Сунилу, «Добавление узлов в кластер — достаточно простой процесс. Вам не потребуется размонтировать том перед его добавлением. Просто оставьте его смонтированным на узле (узлах). Если новый узел уже зарегистрирован, то просто смонтируйте том на новом узле. Монтирование будет тем толчком, который позволит другим узлам подключаться к новому узлу. Затем после подключения новый узел можно подсоединить к домену DLM и т.д. Все эти операции прозрачны и выполняются с помощью команды монтирования». В руководстве по OCFS2 есть инструкции о том, как добавлять узлы, которые не зарегистрированы.

Где и когда вы можете использовать систему OCFS2 без баз данных

Название статьи «OCFS2: Недооцененная файловая система Linux», поскольку, хотя и утверждается, что OCFS2 является лучшей файловой системой для Oracle, ее совместимость с POSIX и гибкость делают ее полезной не только для использования с базами данных.

Наиболее типичное использование — создание кластерной файловой системы с двумя узлами. Вы просто берете два узла, которые совместно обращаются к некоторому общему устройству хранения данных (возможно, через оптический канал FC, через ISCSI или через SCSI) и имеют общую сеть TCP, а затем конфигурируете систему OCFS2 для этих двух узлов. Вы сможете через OCFS2 обмениваться данными между этими двумя узлами, но только между двумя узлами. Вы сможете нарастить кластер и добавить несколько узлов, но вы ограничены обменом данными только между узлами OCFS2. Несмотря на все наши пожелания, в системе OCFS2 есть ограничения по масштабированию, связанные с производительностью, шириной пропускания и надежностью подключения узлов к сети, шириной пропускания и надежностью подсистем хранения данных, а также с требованиями к процессорам и памяти для каждого узла. Таким образом, число узлов на практике зависит от того, какая требуется производительность от комбинации файловой системы / системы хранения данных.

Читайте также:  Windows 10 как сделать мелкие значки

Мы легко можем использовать узлы OCFS2 как шлюзы NFS других клиентов, позволяющие обмен данными с другими системами. В этом случае каждый узел файловой системы OCFS2 должен быть достаточно производительным (т.е. иметь более двух ядер), поскольку он будет функционировать не только как узел ввода / вывода (т. е. как часть файловой системы OCFS2), но также и как шлюз NFS. Если у вас в OCFS2 более одного узла, вы можете использовать каждый из узлов в качестве шлюза NFS, поделив клиентов поровну между узлами. Это поможет снизить нагрузку на конкретный шлюз, но потребует дополнительной работы по администрированию. Обычно клиентов требуется распределять по шлюзам, но вы также можно использовать циклическую перенастройку DNS с тем, чтобы уменьшить административные расходы — для этого потребуется дополнительная настройка начальной конфигурации DNS.

Преимущество от использования OCFS2 как базы для NFS, заключается в том, что если вам нужно больше места для хранения данных, вы просто добавляете еще устройства хранения данных. Если вам нужно увеличить общую производительность, вы можете добавить к кластеру OCFS2 новый узел, который затем может стать шлюзом NFS. Хотя в результате производительность отдельного клиента не улучшится, совокупная общая производительность повысится.

Заключение

Система OCFS2 является в мире баз данных очень хорошо известной файловой системой, особенно для Oracle. Но в мире хранилищ данных для Linux, возможно, недооценивают тот факт, что система совместима с POSIX. Если рассматривать ее как файловую систему с одним узлом, в ней есть ряд интересных функций, таких как экстенты и контрольные суммы метаданных, но, возможно, более важно то, что она является кластерной файловой системой. Это означает, что в качестве общего хранилище данных должны быть использованы такие средства, как SAN или внешние массивы RAID.

Что касается обычных Linux функций хранения данных, то систему OCFS2 можно использовать как базу для NFS. Это позволит вам легко увеличивать емкость файловой системы путем добавления устройств к SAN. Каждый узел OCFS2 может выступать в качестве сервера NFS (шлюза) со своим собственным набором клиентов. Это позволит вам балансировать трафик NFS между узлами OCFS2, хотя, в действительности, это делается вручную (например, для балансировки клиентов вам на каждом узле OCFS2 потребуется больше памяти). И, на всякий случай, вы сможете установить Samba и использовать OCFS2 как базу для CIFS (я не знаю, возможно ли это, но не вижу препятствий). Если для этого вам потребуется платная поддержка, фирма Oracle также предусматривает и это.

Дайте шанс системе OCFS2. Взгляните на нее, попробуйте ее на нескольких тестовых машинах и посмотрите, насколько она удовлетворяет вашим требованиям. Я думаю, вы будете удивлены.

Источник

Поддерживаемые и рекомендуемые файловые системы в Linux

Цель этой публикации – дать системным администраторам обзор и сравнение файловых систем, доступных в Linux.

Файловые системы Linux

Одной из наиболее интересных особенностей ОС Linux является разнообразие файловых систем.

Файловые системы могут быть определены и построены на основе разделов.

Файловые системы VFAT, ext2, ext3, ext4 и Reiser могут сосуществовать в одной и той же системе Linux, а также с несколькими файловыми системами и необработанными разделами.

Ваш выбор, будет основываться на поддержке, надежности, безопасности и производительности.

Oracle обычно не сертифицирует свои продукты в отношении файловых систем, но сертифицирует операционные системы.

Однако для некоторых дистрибутивов Linux Oracle может выбирать сертификаты для разных файловых систем.

В зависимости от версии Linux может включать в себя системы хранения ext2, ext3, ext4, btrfs и NFS (например, NetApp).

Рекомендуемые файловые системы

Для ОС Linux доступны различные файловые системы:

  • Файловые системы ext2, ext3, ext4 являются надежными. ext2 была файловой системой по умолчанию в ядре 2.2. ext3 – это просто расширенная файловая система ext2 с функцией ведения журнала. ext3 является файловой системой по умолчанию для RHEL 3 и 4. ext4 был разработан как преемник ext3. Он предоставляет функции для больших файловых систем, производительности, повышенных ограничений и надежности.
  • Файловая система Oracle Cluster (OCFS) – это общая файловая система, разработанная специально для Oracle Real Application Cluster (RAC). OCFS устраняет необходимость привязки файлов базы данных Oracle к логическим драйверам. Токи OCFS могут охватывать один общий диск или несколько разделяемых дисков для избыточности и повышения производительности.
  • OCFS2 – это следующее поколение файловой системы Oracle Cluster для Linux. Это основанная на степени POSIX-совместимая файловая система. В отличие от предыдущего выпуска (OCFS), OCFS2 – это универсальная файловая система, которая может использоваться для общих домашних объектов Oracle, что упрощает управление установками Oracle Real Application Cluster (RAC).
  • XFS разработан для высокой масштабируемости и обеспечивает почти собственную производительность ввода-вывода, даже если файловая система охватывает несколько устройств хранения данных
Читайте также:  Windows loader daz profile

Таким образом, рекомендуемыми файловыми системами являются:

  • Единый узел: любая файловая система, поддерживаемая поставщиком Linux. Обратите внимание, что любые проблемы с файловой системой должны решаться поставщиком Linux.
  • Многоузловые (RAC): системы хранения данных OCFS, raw, NFS (например, NetApp).

Характеристики файловой системы

При выборе файловой системы производительность не является самым важным моментом.

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

Oracle не поддерживает файлы в файловых системах, которые не имеют возможности сквозного кэширования.

Файловая система должна подтвердить операции записи.

Например, стандартная NFS основана на UDP, которая является сетевым протоколом, который не включает механизм подтверждения.

Одним из поставщиков, который предоставляет поддерживаемую сетевую файловую систему, является Network Appliance, и они используют модифицированный протокол NFS.

Существуют требования безопасности.

Oracle RDBMS и файлы базы данных требуют специальных разрешений для файлов, которые недоступны в некоторых файловых системах (например, VFAT). Если определенные права доступа к файлам не установлены должным образом, СУБД Oracle работает неправильно.

Файлы данных должны быть доступны только для владельца базы данных. Сервер базы данных должен иметь возможность контролировать все другие доступ к файлам и данным.

Журналирование – популярная характеристика.

Основное преимущество заключается в том, что изменения в файловой системе записываются в файл журнала.

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

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

Это очень заметно при загрузке системы.

Команда fsck быстрее проверяет журналированные файловые системы по сравнению с файловыми система без журналов.

Отдельные узловые (локальные) файловые системы

Примечание: файловые системы НЕ ДОЛЖНЫ быть разделены между отдельными серверами.

ext2, ext3, ext4

– Файловые системы ext2, ext3 и ext4 тесно связаны.
– ext2 можно преобразовать в ext3.
– ext3 может быть установлена как файловая система ext2.
– ext3 – это журналированная файловая система.
– ext3 имеет несколько улучшений производительности по сравнению с ext2.
– ext3 может быть установлен как ext4.
– ext4 имеет все функции, предоставляемые ext3, и предоставляет функции для более крупных файловых систем, производительности, повышенных ограничений, надежности.

ReiserFS

– Это стандартная файловая система для Novell / SuSE Linux. В дистрибутивах RedHat он не установлен по умолчанию, но необходимые пакеты находятся на носителе распространения.
– ReiserFS в настоящее время находится в режиме обслуживания с SuSE / Novell.

Btrfs

– Из Btrfs wiki: Btrfs – это новая копия файловой системы write (CoW) для Linux, предназначенная для реализации расширенных функций, с уделением особого внимания отказоустойчивости, ремонту и простоте администрирования.
– Совместно разработанный в Oracle, Red Hat, Fujitsu, Intel, SUSE, STRATO и многих других, Btrfs лицензируется под лицензией GPL и открыт для участия от кого-либо.

Дополнительную информацию см. На странице https://btrfs.wiki.kernel.org.

XFS разработан для обеспечения высокой масштабируемости и обеспечивает почти собственную производительность ввода-вывода, даже если файловая система охватывает несколько устройств хранения. Дополнительную информацию см. В Файловой системе XFS в Oracle Linux.

Многоузловые (разделяемые / кластерные) файловые системы

Raw Partitions

– Считаются высокопроизводительным решением.
– Чтение и запись не используют буфер буфера ОС.
– Чтение и запись могут перемещать большие буферы, чем входы / выходы файловой системы.
– Требует более опытного администрирования.

Файловая система Oracle Cluster (OCFS)

– Oracle Cluster File System предназначена для использования с RAC. Oracle поддерживает OCFS для использования с файлами баз данных. OCFS не является журналируемой файловой системой, но имеет очень хорошие показатели производительности.
– Его производительность менее чем на 5% медленнее по сравнению с сырыми устройствами, а в большинстве тестов только на 2% медленнее.
– Начиная с версии OCFS. 1.0.14-1, OCFS поддерживают Async I / O.

OCFS2

OCFS2 – это следующее поколение файловой системы Oracle Cluster для Linux. Это основанная на степени POSIX-совместимая файловая система. В отличие от предыдущего выпуска (OCFS), OCFS2 – это универсальная файловая система, которая может использоваться для общих домашних объектов Oracle, что упрощает управление установками Oracle Real Application Cluster (RAC). Среди новых возможностей и преимуществ:

Источник

Оцените статью