Windows Server 2012 SMB Transparent Failover, бележки на SysAdmin

SMB Transparent Failover е една от ключовите характеристики на протокола SMB 3.0. Файловите сървъри, базирани на Windows Server 2012, могат да съхраняват данни от различни приложения (например файлове на виртуална машина Hyper-V, бази данни на SQL Server). Тези приложения предполагат, че техните данни са в хранилище, което е защитено и винаги достъпно. Като такива, те не обработват I/O грешки. Ако паметта стане недостъпна, данните може да са повредени и да не е възможно по-нататъшно записване.

SMB Transparent Failover ви позволява да конфигурирате публични папки, когато използвате Failover Clustering, така че да станат много достъпни. Това позволява на клъстерните администратори да поддържат операции по поддръжка на клъстерен възел, без да прекъсват приложенията, чиито данни се съхраняват на клъстерния файлов сървър. В случай на хардуерен срив, файловият сървър ще бъде превключен на работещ възел без забавяне, което също така ще позволи на приложението, което съхранява своите данни на файловия сървър, да работи, без да прекъсва работата си.

Изисквания:

  • Failover cluster, базиран на Windows Server 2012 с поне два възела. Съветникът за проверка на конфигурацията на клъстера трябва да работи и на двата възела без грешки.
  • Клъстерен файлов сървър с една или повече публични папки, работещи в режим на непрекъсната наличност.
  • Клиенти, базирани на Windows 8 или Windows Server 2012.

За да използвате SMB Transparent Failover, и клиентът, и сървърът трябва да поддържат SMB 3.0. Тази поддръжка в момента е достъпна само за Windows 8 и Windows Server 2012. Клиенти, използващи предишни версии на SMB (1.0, 2.0, 2.1)такива папки ще могат да използват, но няма да могат да използват функцията SMB Transparent Failover.

Как работи?

Когато SMB клиент се свърже с папка, той дефинира стойността на параметъра ContinuouslyAvailable за нея. Ако е разрешено (стойността е зададена на True), тогава папката се намира в клъстер за преодоляване на отказ и работи в режим на непрекъсната наличност. Това автоматично означава, че папката поддържа SMB Transparent Failover. Когато SMB клиент отвори файл в папка от името на приложение, той изисква постоянен манипулатор на файла. Когато SMB сървърът получи заявка за отваряне на файл с фиксиран манипулатор, той използва филтъра за ключ за възобновяване, за да съхрани информацията за файловия дескриптор и уникалния ключ за възобновяване, предоставен от клиента.

Ако възникне планирано преместване на приложението към друг клъстерен възел или ако възелът, към който е свързан SMB клиентът, се провали, тогава SMB клиентът се опитва да се свърже отново с друг клъстерен възел. Веднага след като се свърже отново с друг възел, той ще се опита да завърши операцията, започната на предишния възел, като използва ключа за възобновяване. Когато SMB сървърът получи ключ за възобновяване, той извиква филтъра за ключ за възобновяване, за да възстанови манипулатора до състоянието, в което е било преди срива. Ключът за възобновяване също защитава състоянието на дескриптора след превключване на клъстера, за да осигури съгласуваност на пространството на имената и да позволи на клиента да се свърже отново с друг клъстерен възел. Приложение, работещо от страна на SMB клиент, продължава да работи без сривове или грешки по време на операцията по превключване. От гледна точка на приложението всичко изглежда така, сякаш е имало леко спиране в процеса на четене / писане.

За защита срещу загуба на данни, докато записвате в кеш, който е в нестабилно състояние, константафайловият дескриптор е винаги отворен за писане.

SMB работи по TCP протокола. Изчакването за последното обикновено е 20 секунди. Клиентът, преди да определи, че е възникнала повреда в клъстерния възел, към който е свързан, пропуска няколко TCP пакета. В същото време възстановяването на производителността на приложението става за около 10 секунди, а не за 40 или 60, както може да се очаква. Това бързо възстановяване се осигурява от свидетелска услуга.

Обслужване на свидетели

Услугата свидетел е създадена, за да ускори възстановяването след неочаквани повреди, тя позволява на SMB клиента да не чака времето за изчакване на TCP сесията, а незабавно да премине към работния възел. Новият свидетел на услугата се инсталира автоматично, когато инсталирате ролята на клъстера за преодоляване на отказ. Когато SMB клиент се свърже към клъстерен възел, той уведомява Witness клиент, работещ на същия компютър. Клиентът-свидетел получава списък с клъстерни възли от услугата-свидетел, която се изпълнява на клъстерния възел, към който се е свързал. Клиентът-свидетел избира друг клъстерен възел (от получения списък) и изпраща заявка за регистрация до услугата-свидетел на избрания клъстерен възел. След това услугата свидетел на новия клъстерен възел започва да наблюдава събития, свързани с клъстерирания файлов сървър, към който е свързан SMB клиентът.

Ако възникне непланирана повреда на клъстерния възел на файловия сървър (към който е свързан SMB клиентът), услугата свидетел на другия клъстерен възел се уведомява от клъстерната услуга за преодоляване на отказ. Услугата-свидетел уведомява клиента-свидетел, който от своя страна уведомява за повреда на SMB на клиента. При получаване на известие от SMB свидетел услуга, клиентътнезабавно стартира процедурата за повторно свързване към друг клъстерен възел, което значително ускорява възстановяването след непланирана повреда.

Състоянието на услугата свидетел може да се види с помощта на cmdlet Get-SmbWithnessClient:

Работи на един от възлите на клъстера. Параметърът ClientName връща името на SMB клиента, FileServerNodeName е клъстерният възел, към който е свързан клиентът, WitnessNodeName е възелът, на който е регистриран свидетелският клиент.

По подразбиране мрежовият трафик между клиент-свидетел и сървър-свидетел изисква взаимно удостоверяване и подписване. В същото време самият трафик не е криптиран, тъй като не съдържа потребителски данни. Криптирането на трафика на клиента-свидетел може да бъде активирано, както следва:

Можете да предотвратите приемането на некриптиран трафик на свидетелския сървър, както следва: