Локальное и удаленное зеркальное отражение
Зеркальное отражение уже упоминалось в разделе 9.1, но подробно не рассматривалось. Зеркальное отражение представляет собой процесс создания дубликата доступных данных, что позволяет обеспечить доступность данных при отказе в работе основного хранилища.
К популярным причинам использования зеркального отражения относятся следующие:
предоставление метода восстановления данных после различных неисправностей;
распределение нагрузки или самих данных;
обеспечение отказоустойчивости;
Рис. 9.15. Зеркальное отражение на уровне приложения
использование вторичного тома для создания хранилища данных, резервного копирования или тестирования с помощью реальных данных.
Зеркальное отражение может быть локальным или удаленным. Локальное отражение выполняется на нескольких уровнях.
На уровне приложения серверного узла. Приложение выдает два идентичных запроса на запись, предназначенные различным дискам (рис. 9.15).
На уровне программного массива RAID. Приложение выдает единственный запрос на запись. Программный массив RAID, реализованный в драйвере диспетчера тома, преобразует единственный запрос в две идентичные операции записи (рис. 9.16).
На уровне адаптера шины. Приложение выдает единственный запрос на запись, который преобразуется в два идентичных запроса на запись на уровне адаптера шины, установленного на сервере (рис. 9.17).
ш На уровне контроллера хранилища. Такой тип зеркального отражения выполняется внутри подсистемы хранения (рис. 9.18).
Все эти методы относятся только к локальному отражению, имеющему ряд недостатков. Шина имеет ограничение на длину; например, устройства SCSI могут находиться друг от друга на расстоянии не далее нескольких десятков футов. Конечно, для разнесения устройств на большее расстояние можно воспользоваться SAN на базе Fibre Channel. С другой стороны, репликацию можно провести с помощью средств как источника, так и точки назначения данных (рис. 9.19).
Рис. 9.17. Зеркальное отражение на уровне адаптера шины
Такой подход предоставляет весьма интересные возможности, например:
выполнение синхронной или асинхронной репликации;
ш выполнение двунаправленной репликации, повышающей эффективность и позволяющей серверам дублировать друг друга;
восстановление после ошибок и тестирование контрольных точек.
Рис. 9.19.
Удаленное зеркальное отражение с помощью средств обеих точек репликации
Репликация может выполняться на уровне блоков дисков (другими словами, уровнем ниже файловой системы) или средствами драйвера фильтрации файловой системы, который может реплицировать файлы и каталоги.
Существует синхронная и асинхронная репликация. При синхронной репликации операция записи выполняется на обоих узлах (на источнике и вторичном узле, на который выполняется репликация), при этом от обоих серве-
ров получается подтверждение об успешной записи. Таким образом, страдает производительность приложений. При асинхронной репликации запрос записи на удаленный узел размещается в очереди, а запрос записи на локальный узел выдается сразу после возврата управления приложению, благодаря чему операции записи проводятся асинхронно.
Синхронная репликация выполняет синхронизацию данных за счет производительности приложения. Асинхронная репликация позволяет повысить производительность приложения за счет временной рассинхронизации данных на двух дисках. Как только данные поступают и записываются на удаленный диск, зеркальные диски вновь становятся синхронизированными. И синхронный и асинхронный метод репликации сохраняет порядок операций записи на устройство хранения.