Налаштування MPIO для iSCSI в Windows Server 2012.
При зберіганні критично важливих даних забезпечення високої доступності є однією з основних задач. Для високодоступних рішень необхідно забезпечити надмірність на різних рівнях: на рівні дискової підсистеми, на рівні транспорту, на рівні сервера або системи зберігання.Одним з механізмів, призначених для забезпечення високої доступності на транспортному рівні, є технологія багатоколійні введення-виведення (Multi-Path Input-Output, MPIO).
Як правило, кожен пристойний сервер має кілька мережевих інтерфейсів, та й системи зберігання зазвичай оснащуються додатковими адаптерами.Все це дає сервера можливість використовувати одночасно кілька шляхів для підключення до пристрою зберігання, забезпечивши надмірність на транспортному рівні і усунувши єдину точку збою, якої є підключення до сховища. Крім того, подібний підхід може забезпечити ще і розподіл навантаження між шляхами, для підвищення продуктивності.
Однак недостатньо просто підключити до сервера один LUN по декількох шляхах. Операційна система не зможе зрозуміти, що вона бачить один і той же пристрій і підключить його двічі. Це загрожує тим, що дані на диску будуть перезаписані або пошкоджені.
Технологія MPIO якраз і призначена для того, щоб система бачила кожен з презентованих їй дисків в єдиному екземплярі.При наявності декількох шляхів між сервером і пристроєм зберігання MPIO забезпечує маршрутизацію операцій введення \ виводу по цих шляхах і перенаправлення запитів в разі збою одного з шляхів. MPIO в Windows Server 2012 дозволяє операційній системі визначати і використовувати до 32 шляхів між сервером і пристроєм зберігання.
MPIO не залежить від протоколу і може використовуватися з інтерфейсами Fibre Channel, Internet SCSI (iSCSI) і Serial Attached SCSI (SAS). У Windows Server MPIO складається з двох елементів: компонента операційної системи під назвою Multipath I/O і спеціального програмного модуля Device-Specific Module (DSM). Модуль DSM поставляється виробником СГД і забезпечує роботу Microsoft MPIO з даної конкретної моделлю обладнання.Крім того, в Windows Server 2012 є вбудований DSM, який також можна використовувати з різними СГД.
Примітка. Для роботи з Microsoft DSM система зберігання повинна підтримувати SCSI Primary Commands-3 (SPC-3).
В попередній статті була описана настройка сховища iSCSI на базі Windows Server 2012. Продовжуючи цю тему, я опишу настройку MPIO для забезпечення відмовостійкості при підключенні по iSCSI.Як сховище виступає сервер SRV2 c встановленої роллю iSCSI Target, як клієнт сервер SRV3. На кожному сервері кілька мережевих інтерфейсів, підключених до різних Свіча для забезпечення більшої надійності.
Все настройки будуть проводитися на клієнті, тому підключаємося до SRV3 і приступаємо.
Установка компонента Multipath I/O
MPIO в Windows Server 2012 є додатковим компонентом (Feature) і за замовчуванням неактивний. Встановити його можна з оснащення Server Manager, запустивши майстер додавання ролей і компонентів і вибравши компонент Multipath I/O.
Також для включення MPIO ми можемо скористатися PowerShell.Спочатку перевіряємо стан компонента:
Get-WindowsOptionalFeature -Online -FeatureName MultiPathIO
І якщо він неактивний (disabled), встановлюємо його:
Enable-WindowsOptionalFeature -Online -FeatureName MultiPathIO
Включення MPIO для iSCSI
Сама по собі установка компонента ще не означає, що система визначить диски правильно.Тому наступним кроком є включення MPIO для iSCSI, для чого нам знадобиться оснащення MPIO. Для її запуску в Server Manager відкриваємо меню Tools і вибираємо пункт MPIO, або натискаємо Win + R і вводимо команду mpiocpl.exe.
для включення підтримки MPIO для пристроїв iSCSI переходимо на вкладку «Discover Multi-Paths», відзначаємо чекбокс «Add support for iSCSI devices» і тиснемо кнопку Add.
Після чого перезавантажуємо сервер.
Налаштування MPIO для iSCSI
Тепер, коли MPIO включений і доступний для використання, приступимо до підключення iSCSI пристроїв. Відкриваємо оснащення iSCSI Initiator, переходимо на вкладку «Discovery», тиснемо кнопку «Discover Portal» і вводимо один з IP-адрес (будь-який) сервера SRV2, на якому запущений iSCSI Target.
Переходимо на вкладку Targets, вибираємо наш таргет і тиснемо «Properties» для переходу до його властивостей .
У властивостях відкриємо вкладку «Portal Groups», на якій відображені всі доступні шляхи до обраного таргета. Виберемо два з них.
Тепер переходимо на вкладку «Sessions» і тиснемо на кнопку «Add session ».
Відзначаємо чекбокс «Enable multi-path» і тиснемо «Advanced» для переходу до додаткових налаштувань .
в додаткових настройках в поле «Initiator IP» вибираємо адреса локального інтерфейсу, а в поле «Target portal IP» - відповідний адресу iSCSI-сервера. Як бачите, обидва IP знаходяться в одній підмережі.Таким чином ми визначаємо шлях, по якому буде проводитися підключення до iSCSI Target на SRV2. Тиснемо OK, потім таким же способом додаємо другий шлях.
Тепер треба конфігурувати диск iSCSI для використання MPIO. Повертаємося на вкладку «Sessions», вибираємо обидві сесії і тиснемо кнопку «Devices».
У списку у нас один пристрій - Disk 1. Вибираємо його і тиснемо кнопку MPIO.
Тут нам треба налаштувати політику використання шляхів. Вибирати можна з наступних варіантів:
• Fail Over Only - використовується тільки один шлях, вказаний в якості основного (active), інші шляхи знаходяться в режимі очікування (standby).При недоступності основного шляху все підключення переводяться на резервний шлях. Як тільки основний шлях стає доступний, все підключення повертаються назад на основний шлях;
• Round Robin - всі можливі шляхи використовуються по черзі, для балансування навантаження;
• Round Robin with Subset - можна вказати кілька основних шляхів, використовуваних як в попередньому режимі Round Robin, а також один або кілька додаткових шляхів.Поки доступний хоча б один з основних шляхів, система використовує їх в режимі Round Robin. Якщо ж жоден з основних шляхів недоступний, то використовуються додаткові шляхи в порядку зменшення пріоритету. Коли відновлюється працездатність хоча б одного з основних шляхів, система повертається в режим балансування.
• Least Queue Depth - запити направляються на той шлях, який в даний момент має найменше число запитів в черзі;
• Weighted Paths - для кожного шляху призначається якийсь вагу (або вартість), яка позначає пріоритет використання даного шляху. Чим більше вага, тим нижче пріоритет, відповідно для операцій вибирається доступний шлях з найменшим пріоритетом;
• Least Blocks - все запити направляються на той шлях, в черзі якого на передачу варто найменше число блоків даних.
Для забезпечення відмовостійкості виберемо найпростіший варіант - політику Fail Over Only.
Крім того, вибравши шлях і клікнувши на «Details» можна подивитися подробиці цього підключення.
А по кнопці «Edit» - вибрати активний шлях (для Fail Over Only) або вказати вагу шляху (для Weighted Paths).
Налаштування MPIO за допомогою PowerShell
Керувати MPIO можна і за допомогою PowerShell, де для цього є спеціальний модуль. Виведемо всі командлети цього модуля командою:
Get-Command -Module MPIO
Так наприклад можна включити MPIO для iSCSI:
Enable-MSDSMAutomaticClaim -BusType iSCSI
Так налаштувати політику Fail Over Only:
Set-MSDSMGlobalDefaultLoadBalancePolicy -Policy FOO
А ось так подивитися всі доступні для MPIO пристрої iSCSI:
Get-MPIOAvailableHW -BusType iSCSI
Також варто згадати про додаткові параметри MPIO, доступних з консолі PowerShell.Вивести їх можна командою Get-MPIOSetting. Це налаштування таймера, які відповідають за таймаут при перемиканні:
• PathVerificationState - визначає, чи потрібна перевірка доступності шляху;
• PathVerificationPeriod - вказує час в секундах, протягом якого сервер перевірятиме кожен шлях.Цей параметр діє тільки при включеному параметрі PathVerificationState;
• PDORemovePeriod - задає час в секундах, після закінчення якого фізичний пристрій буде повністю видалено, якщо всі шляхи до пристрою недоступні;
• RetryCount - задає кількість повторів запиту введення \ виведення;
• RetryInterval - задає період часу, після закінчення якого сервер повторює спробу запиту введення \ виводу;
• UseCustomPathRecoveryTime - вказує, задавати чи вручну період відновлення.Якщо цей параметр відключений, то використовується подвоєне значення PDORemovePeriod;
• CustomPathRecoveryTime - задає період часу в секундах, після закінчення якого виконується спроба відновлення підключення. Цей параметр діє тільки при включеному UseCustomPathRecoveryTime;
• DiskTimeoutValue - вказує, скільки часу повинен очікувати сервер перед тим, як вважати запит введення \ виведення до диска вичерпаним.
У більшості випадків ці параметри можна залишити без зміни, проте в деяких ситуаціях для забезпечення його оптимальної роботи може знадобитися їх змінити. Наприклад, якщо використовується відмовостійкий кластер і балансування навантаження по декількох шляхах, то зменшення часу очікування може прискорити перемикання між вузлами.І навпаки, для одиночного сервера деякі із значень можна збільшити, для забезпечення більшої надійності.
Для зміни цих параметрів скористаємося командою Set-MPIOSetting. Для прикладу змінимо таймаут перемикання диска:
Set-MPIOSetting -NewDiskTimeout 30
Нагадаю, що при зміні параметрів MPIO може знадобитися перезавантаження сервера.
Примітка. Також конфігурувати MPIO можна c допомогою утиліти командного рядка mpclaim.exe. Для перегляду її можливостей наберіть в командному рядку mpclaim /?.
Отработка відмови
Після завершення налаштування необхідно протестувати вийшла конфігурацію.Для цього запускаємо копіювання на загальний диск, а потім відключаємо один мережевий інтерфейс, що забезпечував активний шлях. Копіювання призупиняється, швидкість падає до нуля
Але після закінчення часу очікування процес поновлюється і успішно завершується.
А якщо тепер подивитися в налаштування пристрою, то ми побачимо, що перемикання відбулося і запасний шлях став активним.
Таким чином за допомогою MPIO ми налаштували відмовостійке підключення до сховища iSCSI.
на завершення нагадаю, що в даній статті наведено варіант настройки MPIO з використанням вбудованого модуля Microsoft DSM. При використанні системи зберігання інших виробників рекомендується використовувати DSM, що поставляється з цим обладнанням, відповідно процедура настройки буде відрізнятися.П>.