Файловая система компании IBM General Parallel File System (GPFS) представляет собой кластерную файловую систему с совместным доступом к дискам, как правило используемую для высокопроизводительных вычислений. Преимущества GPFS заключаются в быстром одновременном доступе к файлам в кластеризованной среде. Одной из основных характеристик GPFS, способствующих повышению производительности, является ее способность распределять блоки данных одного файла по нескольким дискам кластера и параллельно выполнять циклы чтения и записи. Кроме того она предлагает множество функций, таких как регистрация метаданных для восстановления после отказа узла, фиксация мгновенного состояния для сохранения данных файловой системы в данный момент времени, репликация данных в случае отказа системы, высокая доступность данных и масштабируемость. По этой причине GPFS традиционно используется в мощных вычислительных системах и развертывается во многих самых мощных в мире суперкомпьютерах.
В последнее время GPFS все чаще применяется даже в повседневных коммерческих приложениях. Последние версии GPFS были дополнены многими новыми возможностями, которые помогают развертывать функции управления жизненным циклом информации и даже способствуют соблюдению требований различных нормативных актов. Поскольку GPFS доступна для кластеров AIX и Linux®, эти возможности можно применить к приложениям и хранилищам, работающим на этих разновидностях UNIX®. Одна из новых интересных функций, поддерживаемых в GPFS V3.4 для AIX — возможность установки флагов immutable и appendOnly. Под неизменяемостью обычно понимают защиту файлов или данных от несанкционированного доступа и от злонамеренного ввода данных. Другими словами, неизменяемые файлы не может удалить или изменить даже суперпользователь или пользователь root. Аналогичным образом, установка для файла флага appendOnly не позволяет пользователю изменять его содержимое, но в то же время позволяет добавлять в него данные. Такие возможности, как правило, необходимы для соблюдения требований различных нормативных актов, таких как Закон об ответственности и переносимости данных о страховании здоровья граждан (HIPAA) в здравоохранении и Федеральный совет по надзору за финансовыми учреждениями (FFIEC) в финансовой сфере или оборонных приложениях. (Дополнительную информацию о соблюдении нормативных актов можно найти в Ресурсах.)
В этой статье мы исследуем атрибуты immutable и appendOnly, доступные в AIX в версии GPFS V3.4. Статья описывает различные файловые операции, доступные благодаря этим атрибутам, и поясняет, какие преимущества они дают организациям благодаря созданию безопасной и защищенной от несанкционированного доступа среды, обязательной для соблюдения нормативных актов.
Зачастую хранящиеся в файловой системе файлы содержат конфиденциальные данные, которые нужно постоянно защищать от повреждения, удаления и ошибочного ввода данных несанкционированными пользователями или даже пользователем root. Некоторым организациям необходима возможность однократной записи и многократного чтения (WORM) файлов, тогда как некоторые отраслевые нормативные документы, такие как HIPAA, требуют обязательной защиты от несанкционированного доступа к разного рода файлам, например, файлам аудиторских проверок, файлам регистрации событий, медицинским карточкам и т.п. Неизменяемость — это методика, обеспечивающая защиту данных от повреждения и несанкционированного доступа. Также эта методика называется проверкой целостности содержимого.
Если файл помечен как неизменяемый, его больше нельзя изменить. В то же время файлы, используемые для регистрации событий, постоянно растут в размерах. Для сохранения целостности данных в таких случаях необходимо позволить пользователю добавлять данные, запретив при этом другие полномочия, такие как изменение списков контроля доступа (ACL) или владельцев, редактирование или удаление файла.
В традиционной файловой системе UNIX файлы делаются неизменяемыми первоначальным владельцем или любым централизованным процессом архивирования с помощью команды chmod, которая убирает право пользователя на запись из ACL-файла, в результате чего файл становится недоступным или не может быть изменен. IBM GPFS предлагает значительно больше вариантов обеспечения неизменяемости, а также атрибут appendOnly, которым пользователи могут воспользоваться по мере необходимости.
Атрибуты immutable и AppendOnly в GPFS
Во избежание случайного изменения или удаления файлов GPFS предлагает два флага, которые называются immutable и appendOnly. В этой статье мы продемонстрируем, как эти флаги работают с файлами в файловой системе.
Как показано на приведенном ниже рисунке, система c103rp03.gpfs.net в AIX является одним из узлов кластера karmic.gpfs.net в котором установлена GPFS 3.4v. (Дополнительную информацию об установке GPFS в узел AIX можно найти в Ресурсах.)
Код 1: Используемый сервер AIX
(08:17:37) c103rp03 / $ hostname c103rp03.gpfs.net (08:17:40) c103rp03 / $ uname -a AIX c103rp03 3 5 002405FB4C00 (08:17:45) c103rp03 / $ oslevel 5.3.0.0 |
Чтобы проверить версию GPFS, имеющуюся на машине AIX, подайте команду ‘lslpp -l gpfs*’
Код 2: Используемая версия GPFS
(08:17:58) c103rp03 /gpfs/fs1 $ lslpp -l gpfs*
Fileset Level State Description
--------------------------------------------------------------------------------------
Path: /usr/lib/objrepos
gpfs.base 3.4.0.0 COMMITTED GPFS File Manager
Path: /usr/share/lib/objrepos
gpfs.docs.data 3.4.0.0 COMMITTED GPFS Server Manpages and Documentation
|
GPFS имеет собственный обширный набор интерфейсов командной строки (CLI), которые позволяют пользователю AIX взаимодействовать с системой. Одной из команд является mmlscluster, которая показывает конфигурацию кластера GPFS.
Код 3: Отображение конфигурации кластера
(08:18:34) c103rp03 / $ mmlscluster GPFS cluster information ======================== GPFS cluster name: karmic.gpfs.net GPFS cluster id: 13882456366448342595 GPFS UID domain: karmic.gpfs.net Remote shell command: /usr/bin/rsh Remote file copy command: /usr/bin/rcp GPFS cluster configuration servers: ----------------------------------- Primary server: c103rp04.gpfs.net Secondary server: c103rp07.gpfs.net Node Daemon node name IP address Admin node name Designation ----------------------------------------------------------------------------------------- 1 c103rp04.gpfs.net 192.168.100.132 c103rp04.gpfs.net 2 c103rp05.gpfs.net 192.168.100.133 c103rp05.gpfs.net quorum-manager 3 c103rp06.gpfs.net 192.168.100.134 c103rp06.gpfs.net quorum-manager 4 c103rp07.gpfs.net 192.168.100.135 c103rp07.gpfs.net manager 5 c103rp08.gpfs.net 192.168.100.136 c103rp08.gpfs.net manager 6 c103rp09.gpfs.net 192.168.100.137 c103rp09.gpfs.net quorum-manager 8 c103rp10.gpfs.net 192.168.100.138 c103rp10.gpfs.net quorum-manager 9 c103rp03.gpfs.net 192.168.100.131 c103rp03.gpfs.net |
Кластер karmic.gpfs.net имеет файловую систему GPFS 'fs1', смонтированную в точке /gpfs/fs1, которая представляет собой общую директорию, доступную из всех узлов кластера. Для создания файловой системы в кластере GPFS используется команда mmcrfs. Точку монтирования файловой системы можно проверить командой mmlsfs.
Код 4: Точка монтирования GPFS
(08:19:06) c103rp03 / $ mmlsfs fs1 -T flag value description ------------------- ------------------------ ----------------------------------- -T /gpfs/fs1 Default mount point |
Давайте создадим файл Test_File_1 из узла AIX ‘c103rp03.gpfs.net’ в смонтированной директории /gpfs/fs1. Команда GPFS mmlsattar показывает все атрибуты указанного файла.
Код 5: Список атрибутов файла
(08:19:20) c103rp03 / $ cd /gpfs/fs1 (08:19:25) c103rp03 /gpfs/fs1 $ touch Test_File_1 (08:19:33) c103rp03 /gpfs/fs1 $ mmlsattr -L Test_File_1 file name: Test_File_1 metadata replication: 1 max 2 data replication: 1 max 2 immutable: no appendOnly: no flags: storage pool name: system fileset name: root snapshot name: |
Как видите, здесь имеются два флага: immutable и appendOnly, которые относятся к файлу Test_File_1. В настоящее время оба флага имеют значения 'no' (нет), поскольку ни один из них не установлен.
Ограничения неизменяемости в GPFS
GPFS имеет специальную команду mmchattr, которая используется для установки или снятия флага immutable. Если файл помечен как неизменяемый, ни сам файл, ни его родительские директории переименовать нельзя. Такие файлы имеют единственный путь, то есть для неизменяемых файлов не допускаются жесткие ссылки и удаление наборов файлов.
Команда mmchattr -i yes|no устанавливает или снимает флаг immutable для файла.
Причем -i yes устанавливает атрибут immutable в состояние yes (да), а команда -i no устанавливает атрибут immutable в состояние no (нет).
Чтобы проверить, установлен ли флаг для данного файла, подайте команду mmlsattr.
Код 6: Установка и проверка состояния флага immutable для файла
(08:19:52) c103rp03 /gpfs/fs1 $ mmchattr -i yes Test_File_1 (08:20:03) c103rp03 /gpfs/fs1 $ mmlsattr -L Test_File_1 file name: Test_File_1 metadata replication: 1 max 2 data replication: 1 max 2 immutable: yes appendOnly: no flags: storage pool name: system fileset name: root snapshot name: |
Файловые операции с неизменяемыми файлами
Если файл помечен как неизменяемый, соответствующим образом меняется и поведение файловых операций.
-
Удаление: неизменяемый файл нельзя удалить.
Код 7: Операция удаления неизменяемого файла(08:20:13) c103rp03 /gpfs/fs1 $ rm -rf Test_File_1 rm: Test_File_1 not removed. Read-only file system
- Изменение/Добавление: такие файлы нельзя редактировать, также как и добавлять в них данные. Любая попытка изменения неизменяемого файла или добавления в него данных приведет к ошибке.
Код 8: Операция изменения/добавления для неизменяемого файла(08:20:24) c103rp03 /gpfs/fs1 $ echo "abc" > Test_File_1 bash: Test_File_1: Read-only file system (08:20:51) c103rp03 /gpfs/fs1 $ echo "abc" >> Test_File_1 bash: Test_File_1: Read-only file system
Заметьте, что применение к файлу флага immutable вступает в силу только после закрытия файла. Таким образом, если после установки флага файл остается открытым, его все еще можно изменять или добавлять в него данные.
- Изменение ACL: ACL (разрешения чтения/записи/исполнения для владельца/группы/пользователя) неизменяемого файла нельзя изменить или удалить.
Команда
mmgetaclпоказывает текущий список разрешений файла, а командаmmdelaclиспользуется для удаления существующих разрешений файла. После установки для файла атрибута immutable удалить или изменить разрешения доступа невозможно.
Код 9: Изменение ACL для неизменяемого файла(09:30:32) c103rp03 /gpfs/fs1 $ mmgetacl Test_File_1 #owner:root #group:system user::rw-c group::r--- other::r--- (09:31:09) c103rp03 /gpfs/fs1 $ mmdelacl Test_File_1 mmdelacl: Authorization failure
- Изменение режима: режим неизменяемого файла изменить нельзя.
Код 10: Изменение режима неизменяемого файла(08:21:04) c103rp03 /gpfs/fs1 $ chmod u+x Test_File_1 chmod: Test_File_1: Not owner
- Неизменяемые директории:если директория помечена как неизменяемая, в ней нельзя создавать, удалять или переименовывать файлы. Однако поддиректории по-прежнему можно изменять, если только вы непосредственно не пометили их как неизменяемые.
Например, в следующем фрагменте кода создается директория Test_Dir с четырьмя файлами m1, m2, m3, m4 и поддиректория sub_dir1. Затем для директории Test_Dir устанавливается флаг immutable с помощью команды mmchattr, а затем выводятся ее атрибуты с помощью команды mmlsattr.
Код 11: Установка флага immutable для директории(09:34:22) c103rp03 /gpfs/fs1 $ mkdir Test_Dir (09:34:29) c103rp03 /gpfs/fs1 $ cd Test_Dir (09:34:34) c103rp03 /gpfs/fs1/Test_Dir $ touch m1 m2 m3 m4 (09:36:08) c103rp03 /gpfs/fs1/Test_Dir $ mkdir sub_dir1 (09:36:10) c103rp03 /gpfs/fs1/Test_Dir $ ls m1 m2 m3 m4 sub_dir1 (09:36:39) c103rp03 /gpfs/fs1/Test_Dir $ cd .. (09:36:43) c103rp03 /gpfs/fs1 $ mmchattr -i yes Test_Dir (09:36:56) c103rp03 /gpfs/fs1 $ mmlsattr -L Test_Dir file name: Test_Dir metadata replication: 1 max 2 data replication: 1 max 2 immutable: yes appendOnly: no flags: storage pool name: system fileset name: root snapshot name:
Теперь любые попытки удаления, создания или переименования файла в этой директории потерпят неудачу с выдачей сообщения об ошибке.
Код 12: Операция удаления/создания/переименования в неизменяемой директории(09:37:30) c103rp03 /gpfs/fs1 $ cd Test_Dir/ (09:37:41) c103rp03 /gpfs/fs1/Test_Dir $ rm -rf m1 rm: m1 not removed. Read-only file system (09:38:18) c103rp03 /gpfs/fs1/Test_Dir $ touch m5 touch: m5 cannot create (09:38:29) c103rp03 /gpfs/fs1/Test_Dir $ mv m2 m5 mv: cannot rename m2 to m5: Read-only file system
Тем не менее поддиректория sub_dir1 все еще может быть изменена и допускает такие операции, как создание в ней новых файлов и переименование существующих файлов.
Код 13: Файловые операции в поддиректориях неизменяемой директории(09:41:16) c103rp03 /gpfs/fs1/Test_Dir $ cd sub_dir1 (09:41:18) c103rp03 /gpfs/fs1/Test_Dir/sub_dir1 $ touch s1 s2 (09:41:27) c103rp03 /gpfs/fs1/Test_Dir/sub_dir1 $ ls s1 s2 (09:41:29) c103rp03 /gpfs/fs1/Test_Dir/sub_dir1 $ mv s1 s3 (09:41:51) c103rp03 /gpfs/fs1/Test_Dir/sub_dir1 $ ls s2 s3
- Метка времени: метку времени неизменяемого файла можно изменить.
Код 14: Изменение метки времени неизменяемого файла(09:32:47) c103rp03 /gpfs/fs1 $ ls -ltr Test_File_1 -rw-r--r-- 1 root system 0 Nov 9 08:19 Test_File_1 (09:33:43) c103rp03 /gpfs/fs1 $ touch Test_File_1 (09:33:46) c103rp03 /gpfs/fs1 $ ls -ltr Test_File_1 -rw-r--r-- 1 root system 0 Nov 9 09:33 Test_File_1
В GPFS вы можете установить для файла флаг appendOnly с помощью той же команды mmchattr с опцией -a yes|no. Также вы можете проверить состояние флага appendOnly той же командой mmlsattr.
Команда mmchattr -a yes|no устанавливает или снимает флаг appendOnly. Причем -a yes устанавливает атрибут appendOnly файла в состояние yes (да), а -a no устанавливает атрибут appendOnly файла в состояние no (нет).
Код 15: Флаг appendOnly для файла
(09:42:25) c103rp03 /gpfs/fs1 $ pwd /gpfs/fs1 (09:42:28) c103rp03 /gpfs/fs1 $ touch Test_File_2 (09:42:47) c103rp03 /gpfs/fs1 $ mmchattr -a yes Test_File_2 (09:42:56) c103rp03 /gpfs/fs1 $ mmlsattr -L Test_File_2 file name: Test_File_2 metadata replication: 1 max 2 data replication: 1 max 2 immutable: no appendOnly: yes flags: storage pool name: system fileset name: root snapshot name: |
Файловые операции с файлами appendOnly
-
Удаление: файл appendOnly удалить нельзя.
Код 16: Операция удаления файла appendOnly(09:42:59) c103rp03 /gpfs/fs1 $ rm -rf Test_File_2 rm: Test_File_2 not removed. Read-only file system
- Изменение/добавление: такие файлы нельзя редактировать, но в них можно добавлять данные.
Код 17: Операция изменения/добавления для файла appendOnly(09:43:01) c103rp03 /gpfs/fs1 $ echo "abc" > Test_File_2 bash: Test_File_2: Read-only file system (09:43:41) c103rp03 /gpfs/fs1 $ echo "abc" >> Test_File_2 (09:43:42) c103rp03 /gpfs/fs1 $ cat Test_File_2 abc
- Изменение ACL: ACL (разрешения чтения/записи/исполнения для владельца/группы/пользователя) файла appendOnly нельзя изменить или удалить.
Код 18: Изменение ACL файла AppendOnly(09:44:04) c103rp03 /gpfs/fs1 $ mmgetacl Test_File_2 #owner:root #group:system user::rw-c group::r--- other::r--- (09:44:15) c103rp03 /gpfs/fs1 $ mmdelacl Test_File_2 mmdelacl: Authorization failure
- Изменение режима: режим файла с установленным атрибутом appendOnly изменить нельзя.
Код 19: Изменение режима файла appendOnly(09:43:47) c103rp03 /gpfs/fs1 $ chmod u+x Test_File_2 chmod: Test_File_2: Not owner
- Директория с атрибутом appendOnly: если директория помечена как appendOnly, в ней нельзя удалять или переименовывать файлы.
Тем не менее в ней можно создавать файлы нулевого размера. В следующем примере директория Test_AppendOnly содержит файлы a1, a2, a3 и поддиректорию sub_dir1. Далее для директории Test_AppendOnly устанавливается флаг appendOnly с помощью команды mmchattr.
Код 20: Установка флага appendOnly для директории(09:44:24) c103rp03 /gpfs/fs1 $ mkdir Test_AppendOnly (09:44:30) c103rp03 /gpfs/fs1 $ cd Test_AppendOnly (09:44:35) c103rp03 /gpfs/fs1/Test_AppendOnly $ touch a1 a2 a3 (09:44:43) c103rp03 /gpfs/fs1/Test_AppendOnly $ mkdir sub_dir1 (09:44:51) c103rp03 /gpfs/fs1/Test_AppendOnly $ ls a1 a2 a3 sub_dir1 (09:44:58) c103rp03 /gpfs/fs1/Test_AppendOnly $ cd .. (09:45:09) c103rp03 /gpfs/fs1 $ mmchattr -a yes Test_AppendOnly (09:45:15) c103rp03 /gpfs/fs1 $ mmlsattr -L Test_AppendOnly file name: Test_AppendOnly metadata replication: 1 max 2 data replication: 1 max 2 immutable: no appendOnly: yes flags: storage pool name: system fileset name: root snapshot name:
Теперь, как показано ниже, файлы в директории Test_AppendOnly нельзя удалять или переименовывать. Тем не менее в этой директории по-прежнему можно создавать файлы.
Заметьте, что если установить для файла или директории оба атрибута immutable и appendOnly, то действовать будет атрибут immutable.
В зависимости от требований вашего бизнеса и характера защищаемых данных вы можете выбрать соответствующий флаг для своих файлов. Кроме того, файлы иногда случайно удаляются владельцем из-за простой опечатки. Ограничения, устанавливаемые этими флагами GPFS, помогают избежать таких распространенных ошибок.
Организациям необходимо защищать файлы аудиторских проверок, медицинские карты пациентов, файлы регистрации событий и многие другие типы файлов от повреждений или злонамеренного добавления информации. В таких случаях применение атрибутов immutable и appendOnly помогает эффективно защитить ваши данные.
В этой статье мы рассказали, как защитить от несанкционированного доступа конфиденциальные файлы системы AIX с помощью атрибутов immutable и appendOnly в GPFS 3.4v. Дополнительную информацию об этих функциях GPFS можно найти в Расширенном руководстве по администрированию GPFS V3.4 (GPFS V3.4 Advanced Administration Guide)(см. Ресурсы).
Авторы искренне благодарны Бхушану Джаину (Bhushan Jain) (bhujain1@in.ibm.com) из Корпорации IBM за рецензирование этой статьи и ценные предложения.
Научиться
-
Оригинал статьи: Immutability and appendOnly features in GPFS 3.4v on AIX.
-
Узнайте больше о General Parallel File System корпорации IBM . Читайте, узнавайте новое и делитесь информацией о IBM GPFS через вики-ресурсы, форум и сообщество.
-
Расширенное руководство по администрированию GPFS V3.4
-
Неизменяемость в файловых системах ext2/ext3 — демонстрация работы атрибута immutable в файловых системах ext2/ext3.
-
Долговременное хранение цифровой информации — обучающая презентация от SNIA.
-
Узнайте больше о совместимости с HIPAA.
-
Установка GPFS на узлы AIX — полное руководство по установке.
Получить продукты и технологии
-
Пакеты AIX Expansion Pack и Web Download Pack: загрузите прямо сейчас.
-
Набор инструментов AIX для приложений Linux.

Сендип Рамеш Патил работает штатным инженером по программному обеспечению в IBM India Software Labs. Последние двенадцать лет его работа в IBM в основном связана с масштабируемыми сетевыми хранилищами (IBM SONAS), распределенными технологиями, включая DCE, SARPC, и продуктами по обеспечению безопасности, такими как IBM Network Authentication Services (IBM Kerberos). Он является заслуженным автором IBM developerWorks и заслуженным изобретателем IBM. Сендип имеет степень бакалавра в области информационных технологий и технологий, полученную в университете Пуны, Индия. С ним можно связаться по адресу sandeep.patil@in.ibm.com.

Уджвала П. Тулсхигири – программист компании IBM India Software Labs. Работала с системами контроля состояния SONAS. Принимала участие в проекте интернатуры Extreme Blue под названием “Использование ODF для социального взаимодействия с составными приложениями и мэшапами”. Уджвала имеет степень бакалавра информатики, полученную в Техническом колледже Пуны (COEP). С ней можно связаться по адресу ujwala.tulshigiri@gmail.com.