Вопрос или проблема
У меня есть группа SQL Always-On, которая требует свидетеля файловой доли. Я хочу, чтобы этот свидетель файловой доли был избыточным, и поскольку у меня нет других потребностей в файловом сервере в этой сети, я хотел бы сделать это с наименьшим количеством серверов.
Я думал настроить 2 сервера с DFS, но эта статья говорит не делать этого, потому что DFS иногда может использовать данные одного сервера, а иногда другого, что нарушает квоту: http://windowsitpro.com/high-availability/q-why-cant-i-host-file-share-witness-cluster-dfs-share
Кажется, мне нужна настоящая/реальная кластерная система Windows для отказоустойчивости, настроенная в роли файлового сервера. Проблема в том, что все статьи, которые я читал, говорят о использовании общего хранилища. Но общее хранилище (например, SAN) потребует третьего сервера, и тогда снова у меня будет единственная точка отказа (SAN). И я действительно предпочел бы купить только 2 новых сервера вместо 3. Я вижу, что могу также использовать хранилище Windows в качестве альтернативы SAN, но это требует 3 диска, так что это еще хуже в плане покупки оборудования.
Каково лучшее решение для настройки избыточной файловой доли для свидетеля, не покупая слишком много серверов и не имея единственной точки отказа SAN? Очевидно, я хотел бы использовать локальное хранилище, но могу ли я настроить файловый кластер так, чтобы он всегда использовал жесткий диск сервера 1, когда сервер 1 является основным, и жесткий диск сервера 2 всегда, когда сервер 2 является основным, и использовать DFS для репликации данных в случае, если один из серверов выйдет из строя? Я думаю, этот способ избежит проблемы “только DFS”, упомянутой в вышеупомянутой статье, и все равно позволит мне остаться только с 2 серверами.
Основываясь на требовании общего хранилища, я предполагаю, что это AlwaysON FCI (отказоустойчивые экземпляры кластера). Самым простым решением для вас будет развертывание виртуального SAN. Виртуальное SAN будет использовать локальное хранилище 2 узлов SQL, которые у вас есть, и предоставит его обратно им в виде высокодоступного виртуального диска. Теперь, если один из узлов кластера SQL выйдет из строя, у вас все равно останется одна рабочая копия ваших данных и плавный отказоустойчивый механизм SQL. Хотя большинство продуктов Virtual SAN являются коммерческими, также есть возможность получить бесплатные с различным уровнем ограничений:
- Datacore виртуальное SAN – Эмулирует FC хранилище только, бесплатно только для непроизводственного использования. Необходимо отправить форму и ответить на некоторые вопросы, чтобы получить это.
- Бесплатный HP VSA – эмулирует iSCSI, имеет ограничение в 1 ТБ (это не должно стать проблемой для SQL), но требует как минимум 3 сервера. Не уверен, разрешено ли производственное использование.
- StarWind [Виртуальное SAN Бесплатно][3] – Эмулирует iSCSI, NFS и SMB3. Есть как минимум 2 предложения бесплатных лицензий. Одна – лицензия на 2 узла, доступная для всех, может обеспечить отказоустойчивое хранилище NFS и SMB3. Производственное использование поддерживается. Вторая – [полноценное бесплатное 2-узловое виртуальное SAN][4], которое обеспечивает отказоустойчивое хранилище через iSCSI, DMA, NFS и SMB3. Производственное использование также поддерживается. Чтобы получить это, вам нужно быть либо MCP/MVP, либо VCP/vExpert, либо активным участником онлайн-сообществ. (Я сейчас получил второе, вам придется связаться с ними, чтобы получить одно).
Вот видео о развертывании SQL AlwaysOn FCI с виртуальным SAN хранилищем (это в Azure, но процесс тот же) http://www.edwinmsarmiento.com/running-a-sql-server-failover-clustered-instance-on-microsoft-azure/
Windows Server не поддерживает отказоустойчивые кластеры с общим хранилищем на данный момент. Вам необходимо общее устройство, которое поддерживало бы SCSI-резервирование для использования в качестве кластерного хранилища (в любой роли). Это изменится с выходом Windows Server 2016, который вводит Репликацию Хранилища:
Репликация Хранилища – это новая функция в техническом превью Windows Server 2016, которая обеспечивает независимую от хранилища, блочную, синхронную репликацию между кластерами или серверами для подготовки к бедствиям и восстановления, а также растягивание отказоустойчивого кластера по сайтам для высокой доступности. Синхронная репликация позволяет зеркалирование данных в физических сайтах с объемами, согласованными при сбоях, что обеспечивает нулевую потерю данных на уровне файловой системы.
Но ваша проблема будет иметь тип “кукушка и яйцо”. Вам необходим свидетель, чтобы ваш кластер мог создать кворум для принятия решения о переходе на случай сбоя. Вы хотите разместить этот свидетель на кластере машин, состоящем из 2 физических узлов. Поэтому сейчас вам внезапно нужен другой свидетель для вашего кластера файловых серверов. Это не решит вашу проблему.
Суть проблемы такова: вам не следует создавать кластер файловых серверов только для свидетельской файловой доли группы доступности. Доступность свидетеля не так критична, поскольку она не повлияет на работу ваших экземпляров SQL. Если свидетель недоступен, вы теряете только автоматическую возможность переключения на других участниках вашей группы доступности.
Вы также можете использовать DFS с двумя серверами и локальным хранилищем. Просто правильно настройте DFS. Извините, но я не могу предоставить больше информации в данный момент.
Редактирование в попытке спасти этот пост: Вот хорошее руководство о том, как настроить репликацию DFS:
https://www.poweradmin.com/blog/how-to-configure-dfsr-replication/
К сожалению, это решение не будет хорошо работать для приложений, которые получают доступ к файлам круглосуточно. Реализация DFS-R от Microsoft реплицирует только закрытые файлы, поэтому, если приложение держит файлы открытыми, репликация не произойдет.
Ответ или решение
Кластерный файловый сервер на Windows 2012 с локальным хранилищем: Решение для обеспечения избыточности
Введение
Создание высокодоступного участка файлового сервиса на Windows Server 2012 для обеспечения функциональности, необходимой для группы Always On SQL, требует особого внимания к архитектуре и выбору технологии. В данном случае необходимо организовать файловый ресурс для голосования, который должен быть избыточным и доступным без внедрения дополнительного серверного оборудования или использования SAN-устройств.
Проблема
Основная задача состоит в том, чтобы наладить работу файлового сервиса, обеспечивающего доступность для группы Always On SQL, без необходимости в синхронизации через DFS, что может привести к непредсказуемым ситуациям из-за конфликта данных. К тому же, одновременное использование локальных дисков на двух серверах ограничивает возможность непосредственного резервирования и избыточности.
Решение: Настройка кластерного файлового сервера
-
Создание кластера с локальными дисками: Хотя Windows Server 2012 требует наличия общего устройства для работы кластеров, в этом контексте стоит рассмотреть подход с созданием кластера, использующего локальные диски.
- Файловый кластер: Установите Windows Failover Cluster на двух серверах, сконфигурировав его на использование локального хранилища. При этом важно понимать, что такая архитектура подразумевает риск потери доступа при выходе из строя одного из серверов.
-
Использование DFS для репликации: Вы можете использовать DFS (Distributed File System) для обеспечения редундантности между двумя серверами. Это позволит синхронизировать данные между серверами, сводя к минимуму возможность потери данных:
- Настройка DFS: Убедитесь, что вы настроили DFS для репликации, равномерно распределяя нагрузку и обеспечивая избыточность. Однако, учитывайте, что DFS будет работать лишь с закрытыми файлами, поэтому это решение подходит только для файлов, которые не используются одновременно.
-
Репликация и резервирование: Поскольку файловый кластер не является единственной точкой отказа, важно создать дополнительный план резервирования для файлового сервиса. Например, использование дополнительного сервера в качестве резервного может значительно уменьшить время простоя в случае сбоя основного сервера.
-
Выбор лучшей реализации: Есть несколько подходов к реализации виртуального хранилища, которые помогут вам избежать дополнительных затрат на оборудование. Инструменты, такие как StarWind Virtual SAN, могут вам помочь с этим, предоставляя возможность создать виртуальное SAN с локального хранилища без необходимости в SAN.
Заключение
Модернизировать файловый сервис на базе Windows Server 2012 с использованием локального хранилища можно, но это требует наличия правильной конфигурации и понимания допустимых компромиссов, связанных с производительностью и доступностью. Подход с использованием кластеров и DFS, несмотря на свои ограничения, предоставляет вам способ сократить затраты на оборудование и при этом сохранить необходимую для работы гибкость. Всегда помните о возможности внедрения дополнительных решений (таких как StarWind) в будущем для повышения уровня доступности системы.