Назад | Перейти на главную страницу

Передовой опыт использования дисковых пространств Server 2016 и предложения по обеспечению четности и расширению

Привет, ребята,

Я какое-то время переключаюсь между дисковыми пространствами и аппаратным контроллером LSI. Контроллер HW предлагает 8 портов, мой встроенный LSI sas 16 и мой корпус 12 слотов для дисков. В настоящее время я использую MS Server 2016 Datacenter.

Интересно, переключусь ли я с моего Raid 5 (HW-контроллер) на 6x4 ТБ на более гибкое решение SS с 7x4 ТБ + 5x2 ТБ (жесткие диски) + 2x256 ГБ SSD в качестве кеша. Мой опыт работы с SS был не так хорош в прошлом, было много пропадающих дисков и проблем + потеря данных и очень плохая система предупреждений MS (SS полностью отсутствует в моей голове), но большинство проблем с жесткими дисками было вызвано моим блоком питания, который теперь решено - поэтому я решил попробовать SS, так как я могу иметь все свои диски на одном контроллере + избавиться от контроллера HW. Встроенный LSI (плата XEON D) отлично работает, включая ждущий режим жесткого диска.

Я прочитал этот пост Зеркальный виртуальный диск в пуле хранения не может расшириться после добавления диска в Windows Server 2012 R2

Я процитирую очень интересные выводы:

Следовательно, чтобы расширить пул хранилища на 4 столбца - вам не нужно добавлять 4 диска - вам нужно только убедиться, что у вас есть 4 диска с оставшимся дисковым пространством в пуле!

Итак, если 1 заполнен, но у 3 осталось свободное место, пул снова станет работоспособным после добавления одного диска!

На данный момент я сделал тестовый пул и диск следующим образом: -> создал пул с 3x2 ТБ + 2x256 ГБ SSD (в графическом интерфейсе)

    -> Get-StoragePool MyStoragePool | New-StorageTier –FriendlyName SSDTier –MediaType SSD
    -> Get-StoragePool MyStoragePool | New-StorageTier –FriendlyName HDDTier –MediaType HDD

    -> Get-StoragePool MyStoragePool | Set-ResiliencySetting -Name Mirror -NumberOfColumnsDefault 1

    -> $SSD = Get-StorageTier -FriendlyName SSDTier
    -> $HDD = Get-StorageTier -FriendlyName HDDTier

    -> $vd1 = New-VirtualDisk -StoragePoolFriendlyName MyStoragePool -FriendlyName Mirror -StorageTiers @($SSD) -StorageTierSizes @(175GB) -ResiliencySettingName Mirror -WriteCacheSize 0GB
    -> $vd1 = New-VirtualDisk -StoragePoolFriendlyName MyStoragePool -FriendlyName Parity -StorageTiers @($HDD) -StorageTierSizes @(3700GB) -ResiliencySettingName Parity -WriteCacheSize 1GB

отлично работает в Powershell, но не предоставляет мне правильную настройку в графическом интерфейсе. Когда я делаю

    -> Get-VirtualDisk | Format-List

я получил

    PS C:\Users\Administrator> Get-VirtualDisk | Format-List
    ObjectId                          : {1}\\HOMESERVER\root/Microsoft       /Windows/Storage/Providers_v2\SPACES_VirtualDisk.ObjectId="{ae6f3b40-843d-11e6-8239-806e6f6e6963}:VD:{4b713005-eb2e-4ac4-bf03-71a8ae7e05dc}{018a9f90-33a5-4c4e-a8e
                            b64e55}"
    PassThroughClass                  :
    PassThroughIds                    :
    PassThroughNamespace              :
    PassThroughServer                 :
    UniqueId                          : 909F8A01A5334E4CA8E4E55ECBB64E55
    Access                            : Read/Write
    AllocatedSize                     : 3972844748800
    AllocationUnitSize                :
    ColumnIsolation                   :
    DetachedReason                    : None
    FaultDomainAwareness              :
    FootprintOnPool                   : 5963025219584
    FriendlyName                      : Parity
    HealthStatus                      : Healthy
    Interleave                        :
    IsDeduplicationEnabled            : False
    IsEnclosureAware                  :
    IsManualAttach                    : False
    IsSnapshot                        : False
    IsTiered                          : True
    LogicalSectorSize                 : 512
    MediaType                         :
    Name                              :
    NameFormat                        :
    NumberOfAvailableCopies           :
    NumberOfColumns                   :
    NumberOfDataCopies                :
    NumberOfGroups                    :
    OperationalStatus                 : OK
    OtherOperationalStatusDescription :
    OtherUsageDescription             :
    ParityLayout                      :
    PhysicalDiskRedundancy            :
    PhysicalSectorSize                : 4096
    ProvisioningType                  :
    ReadCacheSize                     : 0
    RequestNoSinglePointOfFailure     : False
    ResiliencySettingName             :
    Size                              : 3972844748800
    UniqueIdFormat                    : Vendor Specific
    UniqueIdFormatDescription         :
    Usage                             : Other
    WriteCacheSize                    : 1073741824
    PSComputerName                    :

    ObjectId                          : {1}\\HOMESERVER\root/Microsoft/Windows/Storage/Providers_v2\SPACES_VirtualDisk.ObjectId="{ae6f3b40-843d-11e6-8239-806e6f6e6963}:VD:{4b713005-eb2e-4ac4-bf03-71a8ae7e05dc}{bc5374c5-e4c0-4fbe-b4d
                            094b26}"
    PassThroughClass                  :
    PassThroughIds                    :
    PassThroughNamespace              :
    PassThroughServer                 :
    UniqueId                          : C57453BCC0E4BE4FB4D9036AED094B26
    Access                            : Read/Write
    AllocatedSize                     : 472446402560
    AllocationUnitSize                :
    ColumnIsolation                   :
    DetachedReason                    : None
    FaultDomainAwareness              :
    FootprintOnPool                   : 472446402560
    FriendlyName                      : SSD_VD
    HealthStatus                      : Healthy
    Interleave                        :
    IsDeduplicationEnabled            : False
    IsEnclosureAware                  :
    IsManualAttach                    : False
    IsSnapshot                        : False
    IsTiered                          : True
    LogicalSectorSize                 : 512
    MediaType                         :
    Name                              :
    NameFormat                        :
    NumberOfAvailableCopies           :
    NumberOfColumns                   :
    NumberOfDataCopies                :
    NumberOfGroups                    :
    OperationalStatus                 : OK
    OtherOperationalStatusDescription :
    OtherUsageDescription             :
    ParityLayout                      :
    PhysicalDiskRedundancy            :
    PhysicalSectorSize                : 4096
    ProvisioningType                  :
    ReadCacheSize                     : 0
    RequestNoSinglePointOfFailure     : False
    ResiliencySettingName             :
    Size                              : 472446402560
    UniqueIdFormat                    : Vendor Specific
    UniqueIdFormatDescription         :
    Usage                             : Other
    WriteCacheSize                    : 0

Вывод 1: Интересно, что здесь много отсутствующих данных.

Вывод 2: работает без сбоев со скоростью 150 МБ / с + копирование MP3 на новый диск. Это внешне хорошо для производительности записи с паритетом дисковых пространств благодаря 1 Гб WBC.

Моя цель - иметь расширяемый пул как минимум с дисками 6x4 ТБ + 2x256 ГБ SSD вначале и использовать кэш обратной записи на SSD, который отлично работает в моем примере выше. Я могу закрепить четность на жестких дисках и зеркало на SSD (для моей виртуальной машины не все время будить мои жесткие диски)

Могу ли я установить номер столбца четности, например, 3 при использовании 6 дисков? Могу ли я добавить еще 3 дисков по 4 ТБ, чтобы легко расширить свой пул? Например, 6x4TB -> 9x4TB = 8x4TB можно использовать в Parity ...?

Допустим, я поместил 6 x 4 ТБ и 5 x 2 ТБ в один пул вместе с 2 твердотельными накопителями ... каков будет максимальный том с четностью, и могу ли я расширить его, заменив впоследствии диски на 2 ТБ? Цитируемое сообщение означало:

Я не могу сейчас проголосовать против, но хочу подчеркнуть, что основная информация, приведенная в сообщении bviktors, неверна - он все еще думает в Raid, говоря, что вы не можете расширить половину дисковой группы:

Если у вас есть пул хранения с 4 столбцами - вы можете использовать любое количество дисков, начиная с 4. Пространства хранения всегда будут использовать все диски, которые у вас есть! Счетчик столбцов просто определяет, сколько данных на диски записывается одновременно (это называется чередованием). Однако следующая полоса (размер по умолчанию 256 КБ, называемая чередованием) может (и будет) записана на 4 разных диска!

Следовательно, чтобы расширить пул хранилища на 4 столбца - вам не нужно добавлять 4 диска - вам нужно только убедиться, что у вас есть 4 диска с оставшимся дисковым пространством в пуле!

Итак, если 1 заполнен, но у 3 осталось свободное место, пул снова станет работоспособным после добавления одного диска!

(Это позволяет смешивать емкость по желанию - нет необходимости поддерживать ограничение рейда равных размеров диска)

Рекомендуется всегда добавлять больше дисков, чем было бы #NumberOfDataCopies * #NumberofColumns:

Рассмотрим диск с копиями 2 столбцов 2 - для этого требуется как минимум 4 диска. Если вы потеряете один диск, вы все равно сможете получить доступ к своим данным, но вы больше не сможете ничего писать, потому что у вас не осталось 4 столбцов, где можно было бы хранить данные!

Предположим, вы бы добавили 5 дисков в этот пул (который будет использоваться в зависимости от размера подсистемой дисковых пространств, заполненный наилучшим образом, чтобы все диски работали на 100% одновременно) - потеря одного диска по-прежнему сохраняет ваши data - и ваш пул будет работать для новых записей, потому что у вас все еще осталось минимум 4 столбца.

Кроме того, это позволяет вам немедленно перестроить пул в случае отказа одного диска, без необходимости сначала покупать новый диск!

Set-PhysicalDisk -FriendlyName "BrokenDisk" -Usage Retired Get-PhysicalDisk -FriendlyName "BrokenDisk" | Get-VirtualDisk | Ремонт-VirtualDisk -AsJob

Теперь данные будут «перемещены» на оставшиеся диски, если останется достаточно места. После перестройки:

$ disk = Get-PhysicalDisk -FriendlyName "BrokenDisk" Remove-PhysicalDisk -StoragePoolFriendlyName "My Pool" -PhysicalDisks $ disk

(Вы можете использовать те же команды для вывода «функциональных» дисков из эксплуатации и перемещения данных на другие диски - это позволит как-то перераспределить данные после добавления диска - но в конце у вас всегда будет один диск «пустой». Однако в вашем случае это не сработает из-за небольшого количества дисков. Например, в пуле из 10 дисков вы можете освободить диск объемом 2 ТБ, распределив всего 200 МБ на каждый другой диск. Повторный запуск операции теперь будет записывать предпочтительный вариант на пустой диск. В Storage Spaces в основном всегда говорится: «Я должен написать: 8 блоков (NumberOfColumns * NumberOfDataCopies) размером 64 КБ (чередование / количество столбцов) каждый - дайте мне 8 различных дисков из 10 дисков с наименьшим процентным использованием, так что я могу закинуть туда данные! ")

Было бы неплохо иметь возможность перенести все данные с диска 2 ТБ на другие устройства пула (пока место свободно), а затем добавить новый диск в пул. Интересно, могут ли Storage Spaces выполнять внутреннюю миграцию, но, похоже, главное, что столбцы исправлены. Что будут делать места для хранения, если я переключусь с 6x4 ТБ на 12x4 ТБ? (весь паритет). Что прим. столбцы? В стандарте должно быть 6 (при использовании 6x4 ТБ), - рекомендации MS говорят мне, что мне нужно еще 6 дисков для расширения (что отстой).

Производительность не так важна, поскольку я ограничен 1 Гбит LAN (даже 3x2 Tb Parity с 1GB WBC работает достаточно быстро). Таким образом, столбцы могут быть как можно ниже.

Я готов извлечь максимальную емкость из этого пула с помощью простого резервирования (четности). У меня есть дополнительная резервная копия на моем диске 8 ТБ, которая запускается каждые 3 дня, поэтому мои важные данные все равно сохраняются.

Спасибо за ответы и идеи.