User Tools

Site Tools


storage_spaces_direct_-_настройка

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
storage_spaces_direct_-_настройка [2022/05/06 07:59] jpstorage_spaces_direct_-_настройка [2024/09/25 12:33] (current) jp
Line 1: Line 1:
-===== Настройка гиперконвергентного отказоустойчивого кластера Storage Spaces Direct =====+====== Настройка гиперконвергентного отказоустойчивого кластера Storage Spaces Direct ======
  
 1. Развертываем две ноды: настраиваем BIOS и оборудование, устанавливаем системы на отдельные RAID-массивы, подключаем в сети (heartbeat между нодами) и другие. 1. Развертываем две ноды: настраиваем BIOS и оборудование, устанавливаем системы на отдельные RAID-массивы, подключаем в сети (heartbeat между нодами) и другие.
Line 9: Line 9:
 4. Устанавливаем на каждой ноде нужный набор ролей и фич:  4. Устанавливаем на каждой ноде нужный набор ролей и фич: 
  
 +<WRAP prewrap>
 <code> <code>
 Install-WindowsFeature -Name "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer", "FS-Data-Deduplication" Install-WindowsFeature -Name "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer", "FS-Data-Deduplication"
 </code> </code>
 +</WRAP>
  
 5. MS рекомендует использовать скрипт очистки дисков, которые будут участвовать в массиве. Этот скрипт рассчитан на удаленное использование.   5. MS рекомендует использовать скрипт очистки дисков, которые будут участвовать в массиве. Этот скрипт рассчитан на удаленное использование.  
  
 +<WRAP prewrap>
 <code> <code>
 # Fill in these variables with your values # Fill in these variables with your values
Line 34: Line 37:
 } | Sort -Property PsComputerName, Count } | Sort -Property PsComputerName, Count
 </code> </code>
 +</WRAP>
  
 6. Настраиваем heartbeat-сеть кластера. В случае двух нод с двумя 25-гигабитными адаптерами можно подключить каждый к противоположному (по крайней мере, HP рекомендует делать именно так) и сделать две разных сети. В настройках адаптеров и настройках BIOS выставляем iWARP в качестве network-direct technology. Переименовываем адаптеры для наглядности в CLUSTER_1 и CLUSTER_2. CLUSTER_1 одного сервера будет подключен в CLUSTER_2 другого и наоборот.  6. Настраиваем heartbeat-сеть кластера. В случае двух нод с двумя 25-гигабитными адаптерами можно подключить каждый к противоположному (по крайней мере, HP рекомендует делать именно так) и сделать две разных сети. В настройках адаптеров и настройках BIOS выставляем iWARP в качестве network-direct technology. Переименовываем адаптеры для наглядности в CLUSTER_1 и CLUSTER_2. CLUSTER_1 одного сервера будет подключен в CLUSTER_2 другого и наоборот. 
Line 71: Line 75:
 На сайте Microsoft есть скрипт, который проверяет работу RDMA. В инструкции, которая приложена к статье описывается его выполнение. Сначала нужно скачать DiskSpd.exe, а потом выполнить команду (для iWARP -IsRoCE должно быть именно ''false''): На сайте Microsoft есть скрипт, который проверяет работу RDMA. В инструкции, которая приложена к статье описывается его выполнение. Сначала нужно скачать DiskSpd.exe, а потом выполнить команду (для iWARP -IsRoCE должно быть именно ''false''):
  
 +<WRAP prewrap>
 <code> <code>
 C:\TEST\Test-RDMA.PS1 -IfIndex 3 -IsRoCE $false -RemoteIpAddress 10.5.5.2 -PathToDiskspd C:\TEST\Diskspd-v2.0.17\amd64fre\ C:\TEST\Test-RDMA.PS1 -IfIndex 3 -IsRoCE $false -RemoteIpAddress 10.5.5.2 -PathToDiskspd C:\TEST\Diskspd-v2.0.17\amd64fre\
 </code> </code>
 +</WRAP>
  
 Скрипт тестирует запись на удаленный сервер при помощи RDMA. В нашем случае скрипт создал файл, успешно передавал данные, но по какой-то причине в конце выдавал странную ошибку о том, что нет прав на запись. Но трафик по RDMA шёл и данные отлично передавались, о чем можно посмотреть было в системном мониторе по группе показателей RDMA. Т.е., на ошибку можно забить потому что данные передаются вполне успешно и передаются именно с использованием RDMA.  Скрипт тестирует запись на удаленный сервер при помощи RDMA. В нашем случае скрипт создал файл, успешно передавал данные, но по какой-то причине в конце выдавал странную ошибку о том, что нет прав на запись. Но трафик по RDMA шёл и данные отлично передавались, о чем можно посмотреть было в системном мониторе по группе показателей RDMA. Т.е., на ошибку можно забить потому что данные передаются вполне успешно и передаются именно с использованием RDMA. 
  
 7. Производим валидацию кластера со станции управления. Кстати, на ней должен быть установлен RSAT с компонентами администрирования кластера. Проверяем получившийся html-отчёт и если там нет проблем - идем дальше. 7. Производим валидацию кластера со станции управления. Кстати, на ней должен быть установлен RSAT с компонентами администрирования кластера. Проверяем получившийся html-отчёт и если там нет проблем - идем дальше.
 +<WRAP prewrap>
 <code> <code>
 Test-Cluster -Node node1, node2 -Include "Storage Spaces Direct", "Inventory", "Network", "System Configuration" Test-Cluster -Node node1, node2 -Include "Storage Spaces Direct", "Inventory", "Network", "System Configuration"
 </code> </code>
 +</WRAP>
  
 8. Создаем новый кластер с новым статическим адресом и именем. Без общего стораджа, он создается отдельно.  8. Создаем новый кластер с новым статическим адресом и именем. Без общего стораджа, он создается отдельно. 
Line 112: Line 120:
 11. Создаем шаблон стораджа, который мы хотим использовать. Для нашего кластера был выбран nested mirror - сервера зеркалируют друг друга, плюс в каждом массиве каждого сервера есть зеркало. Такой шаблон оставляет для использования лишь 25% общей ёмкости дисков, но является во-первых достаточно надёжным и позволяет кластеру одновременно выдержать два аппаратных сбоя сразу: например, сервер и диск, два диска и т.д., а во-вторых такая конфигурация является более производительной, чем, например, nested mirror accelerated parity, где полезная ёмкость дисков составляет 35-40 процентов, а отказоустойчивость организуется по типу RAID 5.  11. Создаем шаблон стораджа, который мы хотим использовать. Для нашего кластера был выбран nested mirror - сервера зеркалируют друг друга, плюс в каждом массиве каждого сервера есть зеркало. Такой шаблон оставляет для использования лишь 25% общей ёмкости дисков, но является во-первых достаточно надёжным и позволяет кластеру одновременно выдержать два аппаратных сбоя сразу: например, сервер и диск, два диска и т.д., а во-вторых такая конфигурация является более производительной, чем, например, nested mirror accelerated parity, где полезная ёмкость дисков составляет 35-40 процентов, а отказоустойчивость организуется по типу RAID 5. 
  
 +<WRAP prewrap>
 <code> <code>
 New-StorageTier -StoragePoolFriendlyName S2D* -FriendlyName NestedMirror -ResiliencySettingName Mirror -MediaType SSD -NumberOfDataCopies 4 New-StorageTier -StoragePoolFriendlyName S2D* -FriendlyName NestedMirror -ResiliencySettingName Mirror -MediaType SSD -NumberOfDataCopies 4
 </code> </code>
 +</WRAP>
  
 12. После создания шаблона мы можем переходить к созданию конкретных разделов, которые будут использоваться для хранения данных. Для того, чтобы понять - какого максимального размера раздел мы сможем создать - лучше подключиться к кластеру при помощи Windows Admin Center и посмотреть, сколько места дисков осталось незарезервированным. Storage Spaces резервирует определенное количество места для нужд восстановления на горячую. Т.е. если в кластере вылетит один из дисков, а новый не будет сразу же воткнут "на горячую" - кластер использует это зарезервированное пространство для восстановления. Итого: нам нужно посмотреть незанятое место и разделить в нашем случае на 4, т.к. nested mirror позволит использовать 25 процентов. Затем мы запускаем создание раздела командой, в которой указываем созданный выше шаблон, название раздела и его объем: 12. После создания шаблона мы можем переходить к созданию конкретных разделов, которые будут использоваться для хранения данных. Для того, чтобы понять - какого максимального размера раздел мы сможем создать - лучше подключиться к кластеру при помощи Windows Admin Center и посмотреть, сколько места дисков осталось незарезервированным. Storage Spaces резервирует определенное количество места для нужд восстановления на горячую. Т.е. если в кластере вылетит один из дисков, а новый не будет сразу же воткнут "на горячую" - кластер использует это зарезервированное пространство для восстановления. Итого: нам нужно посмотреть незанятое место и разделить в нашем случае на 4, т.к. nested mirror позволит использовать 25 процентов. Затем мы запускаем создание раздела командой, в которой указываем созданный выше шаблон, название раздела и его объем:
  
 +<WRAP prewrap>
 <code> <code>
 New-Volume -StoragePoolFriendlyName S2D* -FriendlyName Volume01 -StorageTierFriendlyNames NestedMirror -StorageTierSizes 5900GB New-Volume -StoragePoolFriendlyName S2D* -FriendlyName Volume01 -StorageTierFriendlyNames NestedMirror -StorageTierSizes 5900GB
-</code> +</code
 +</WRAP>
  
 13. Теперь общий раздел будет доступен для записи на всех нодах по следующему пути: ''c:\ClusterStorage\Volume01''. Раздел создается в файловой системе ReFS по умолчанию. Она сильно оптимизирована как для Storage Spaces, так и для задач виртуализации HYPER-V. 13. Теперь общий раздел будет доступен для записи на всех нодах по следующему пути: ''c:\ClusterStorage\Volume01''. Раздел создается в файловой системе ReFS по умолчанию. Она сильно оптимизирована как для Storage Spaces, так и для задач виртуализации HYPER-V.
Line 139: Line 151:
 15. После создания дискового раздела - не лишним будет измерить его производительность. Для этого лучше использовать утилиту от MS DiskSpd. Некоторые другие утилиты могут показывать неадекватные результаты, поскольку, не умеют работать с CSV-in memory cache. Скачиваем утилиту и запускаем с такими параметрами:  15. После создания дискового раздела - не лишним будет измерить его производительность. Для этого лучше использовать утилиту от MS DiskSpd. Некоторые другие утилиты могут показывать неадекватные результаты, поскольку, не умеют работать с CSV-in memory cache. Скачиваем утилиту и запускаем с такими параметрами: 
  
 +<WRAP prewrap>
 <code> <code>
  .\diskspd -t2 -o32 -b4k -r4k -w50 -d120 -Sh -D -L -c5G C:\ClusterStorage\Volume01\IO2.dat > test02.txt  .\diskspd -t2 -o32 -b4k -r4k -w50 -d120 -Sh -D -L -c5G C:\ClusterStorage\Volume01\IO2.dat > test02.txt
 </code>  </code> 
 +</WRAP>
  
 В данном случае процент операций записи и чтения будет составлять 50% - за это отвечает параметр ''-w50''. Результаты можно посмотреть в текстовом файле. В самом конце они разбиты на чтение, запись и полную сумму. Производительность хранилища вышла: 81393.54 I/O per s. Утилиту можно использовать на любых дисках, не обязательно массивах Storage Spaces Direct. В данном случае процент операций записи и чтения будет составлять 50% - за это отвечает параметр ''-w50''. Результаты можно посмотреть в текстовом файле. В самом конце они разбиты на чтение, запись и полную сумму. Производительность хранилища вышла: 81393.54 I/O per s. Утилиту можно использовать на любых дисках, не обязательно массивах Storage Spaces Direct.
Line 180: Line 194:
 </code> </code>
  
-== Полезные ссылки ==+=== Полезные ссылки ===
  
 Основная статья по Storage Spaces Direct и всеми его аспектами MS:  Основная статья по Storage Spaces Direct и всеми его аспектами MS: 
Line 202: Line 216:
 https://techblog.ptschumi.ch/windows-server/storage-spaces-direct/deploy-storage-spaces-direct-on-two-node-cluster-with-windows-server-core/ https://techblog.ptschumi.ch/windows-server/storage-spaces-direct/deploy-storage-spaces-direct-on-two-node-cluster-with-windows-server-core/
  
-== Файлы ==+=== Файлы ===
  
 {{  ::настройка_сети_в_storage_spaces_-_microsoft.docx | Гайд по настройке сети от MS }}\\ {{  ::настройка_сети_в_storage_spaces_-_microsoft.docx | Гайд по настройке сети от MS }}\\
 {{  ::рекомендация_hp_по_настройке_нод.pdf | Реокмендация по настройке нод от HP }} {{  ::рекомендация_hp_по_настройке_нод.pdf | Реокмендация по настройке нод от HP }}
  
 +{{tag>Microsoft StorageSpaces Storage PowerShell HPE}}
storage_spaces_direct_-_настройка.1651823983.txt.gz · Last modified: 2022/05/06 07:59 by jp