Перебалансировать жесткие диски в пуле дискового пространства?


13

У меня 2 накопителя по 1,5 ТБ в (пул двусторонней зеркальной памяти). Этот пул недавно достиг 100% емкости, что означает, что на обоих дисках осталось 0% свободного места.

Я добавил 2x 4 ТБ дисков в пул хранения, но пространство хранения не пытается сбалансировать использование диска. После того, как я добавил, я теперь вижу:

My storage space pool : Physical drives
1.5 TB HDD-1 : 100% used
1.5 TB HDD-2 : 100% used
4.0 TB HDD-3 : 0% used
4.0 TB HDD-4 : 0% used

Кажется, что все будущие записи теперь будут сосредоточены на более новых дисках. Я ожидал, что Storage Space get busyкогда-то увидит новые диски и начнет балансировать - но не повезло.

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

К вашему сведению, это на Windows Server 2012 R2, но это то же место для хранения, что и Windows 8.1

Ответы:


10

Воскрешение этого старого вопроса с помощью чего-то, что наконец-то работает в будущих ОС Windows 10 и Windows Server 2016.

Microsoft добавила Optimize-StoragePoolкоманду PowerShell в Windows 10 и Windows Server 2016, которая перебалансирует пространство хранения для всего пула.

Это так же просто, как открыть административную консоль PowerShell и запустить Optimize-StoragePool -FriendlyName "TheNameOfYourStoragePool"

Я писал об этом здесь .

Microsoft анонсировала эту функцию всего несколько дней назад как часть новой Storage Spaces Direct, но она прекрасно работает и с обычными Storage Spaces.


Спасибо ОЧЕНЬ ОЧЕНЬ большое за это, потратили целую вечность на поиски того, как это будет работать в Windows 10, и я рад видеть, что оно было обновлено!
Topherg

1
Казалось, что он отлично работает для тестов, которые я сделал. Я видел странное поведение с пулами четности, но я не исключаю, что просто делал что-то не так. Скоро я настрою его на своем «NAS» (перепрофилированном старом компьютере HP MediaSmart Server) и обновлю блог, добавив больше информации.
Стефан Йокулл Сигурдарсон

@ StefánJökullSigurðarson: Можете ли вы написать одно или два предложения о странном поведении, пока ваше сообщение в блоге не появится в Интернете?
DeepSpace101

1
Я полагаю, что сомнительная Microsoft когда-нибудь создаст бэкпорт или предоставит функциональность, аналогичную Windows 8 / 8.1 / 2012/2012 R2? Было бы неплохо сделать это в 2012 R2, так как у меня похожая проблема.
Джеймс Уайт

3
«Оптимизация пула поддерживается только с простыми или зеркальными пространствами; пространства с четностью не поддерживаются »
Ян Бойд

7

У меня была похожая проблема, когда я обнаружил Storage Spaces (в Windows 8.1), и я переносил свои существующие файлы. Я начал с дисков:

  • Аарон: 500 ГБ, 95% используется
  • Брюс: 1 ТБ, 70% используется
  • Крейг: 1 ТБ, использовано 55%
  • Девин: 1 ТБ, используется 30%
  • Этан: 3 ТБ, используется 50%
  • Феликс: 3 ТБ, используется 0%

Итак, я, переместив все на 2 диска по 3 ТБ, подключил оставшиеся 4 диска к дисковым пространствам, создал пространство, а затем скопировал файлы с 2 заполненных дисков в пространство (устойчивость по четности). После добавления двух дисков обратно в пространство (последовательно) все диски были загружены примерно на 50%, а диски емкостью 3 ТБ - на 20% и 0% в зависимости от того, когда они были очищены и добавлены в пул.

Я пытался подождать несколько дней, чтобы увидеть, восстановит ли система себя, но ничего не произошло.

В конце концов я обнаружил, что у меня есть два варианта:

  1. Создайте второй пробел и последовательно копируйте и удаляйте файлы из одного в другой (не уверен, что резка делает то же самое, но я работал с пониманием, что если разрезание будет выполнено, система обнаружит это и просто перемаркирует плиты, а не двигать их, но я не могу ручаться за обоснованность этого утверждения)
  2. Переведите диск в автономный режим и повторно внедрите его (ТРЕБУЕТ НЕКОТОРЫХ СОПРОТИВЛЕНИЙ)

Я выбрал второй вариант, но в более ранних тестах первый вариант работал, но очень медленно.

Итак, когда все мои файлы и диски были в пуле, я физически отключил (USB в моем случае, в вашем случае вы могли бы просто отключить устройство) один из более полных дисков. Затем на дисковых пространствах появилась ошибка «Уменьшенная отказоустойчивость», и я получил возможность удалить диск из пула, что я и сделал.

Затем я подождал несколько часов (запустил его утром, пошел на работу, вернулся к готовому экрану), а затем Storage Spaces отремонтировал пространство. После того, как пространство было восстановлено, я снова подключил диск, отформатировал его и снова ввел в пул.

Я повторил этот шаг для всех дисков, которые хотел перебалансировать, работая в порядке от самой большой до самой маленькой емкости, так что мой маленький диск на 500 ГБ был добавлен последним.

Да, это означает, что в конечном итоге остался один диск с 0% использования, но со временем он был быстро заполнен до среднего% использования всего пула


Предполагая, что у вас есть только один виртуальный жесткий диск, первый вариант потребует, чтобы у вас было свободное дисковое пространство, которое в два раза превышает ваш том, потому что даже если вы используете тонкую подготовку, «старый» виртуальный жесткий диск не освободит любое дисковое пространство до тех пор, пока оно не будет удалено. Так что в различных сценариях это невозможно. Вариант 2 на самом деле не обеспечивает реальной перебалансировки, потому что диск, который вы вводите последним, всегда будет пустее, чем другие диски.
Догноз

@dognose, хотя оба эти пункта имеют свои достоинства, пока Microsoft не представит более естественный способ ребалансировки плит, это, к сожалению, самое близкое, что мы сможем получить. Что касается Варианта 2, я отказался от Аарона (из-за сбоя диска), и в результате окончательного ремонта плиты были хорошо сбалансированы, но да, это было далеко от идеала ...
topherg

1

В Windows 10 команда « Оптимизировать пул» доступна прямо в графическом интерфейсе:

введите описание изображения здесь

введите описание изображения здесь

Windows Server

Возможность оптимизации пула была добавлена ​​в Windows Server 2016. Но, в отличие от аналога ОС для рабочих станций на основе графического интерфейса, Windows Server не имеет графического интерфейса для управления оптимизацией пространства хранения. Вместо этого вы должны использовать powershell:

> Get-StoragePool

FriendlyName              OperationalStatus HealthStatus IsPrimordial IsReadOnly     Size AllocatedSize
------------              ----------------- ------------ ------------ ----------     ---- -------------
Primordial                OK                Healthy      True         False      10.23 TB       5.46 TB
Silk Road Pool            OK                Healthy      False        False       5.45 TB       4.11 TB

> Optimize-StoragePool -FriendlyName "Silk Road Pool"

Но также обратите внимание, что на Windows Server данные будут автоматически перебалансированы через 30 минут после добавления диска.

образ

Вы можете получить статус оптимизации через powershell (опять же, Microsoft ненавидит графические пользовательские интерфейсы):

> Get-StorageJob

Name      IsBackgroundTask ElapsedTime JobState PercentComplete BytesProcessed BytesTotal
----      ---------------- ----------- -------- --------------- -------------- ----------
Optimize  False            00:12:21    Running  11
Rebalance True             00:00:00    Running  11              114085068800   1020323168256

Примечание . Возможность повторной балансировки / оптимизации работает только для пространств Windows Server 2016 / Windows 10. Если вы используете пространство, созданное в Windows Server 2012 / Windows 8: вам придется «обновить» пространство.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.