Что значит пул памяти на hdd
Вы уже должны немного представлять что такое пулы системной памяти. В этой статье обратим на них более пристальное внимание.
Как удалить диск из пула
В случае создания пула в Windows 10 или обновления существующего пула можно удалить из него диск. Данные, хранящиеся на этом диске, будут перенесены на другие диски в пуле, что позволяет свободно использовать диска для других целей.
- Перейдите к панели задач, введите в поле поиска строку дисковое пространство и выберите Дисковое пространство в списке результатов поиска.
- Выберите пункт Изменить настройки → Физические диски, чтобы просмотреть все диски в пуле.
- Найдите диск, который вы хотите удалить, а затем выберите команду Подготовить для удаления. Оставьте компьютер включенным на время подготовки диска к удалению. Это может занять несколько часов, в зависимости от объема данных, хранящихся на диске.
- Чтобы ускорить процесс подготовки диска, отключите для диска переход в спящий режим (опция). В поле поиска на панели задач введите строку Питание и спящий режим, а затем выберите Параметры питания и спящего режима. В области При питании от сети компьютер переходит в спящий режим после выберите пункт Никогда.
- Если диск отображается как Готов к удалению, выберите Удалить → Удалить диск . Теперь вы можете отсоединить жесткий диск от компьютера.
Примечание: Если у Вас возникли проблемы при попытке подготовки диска к удалению, это может означать, что вы не имеете достаточного количества свободного места в пуле, чтобы хранить все данные с диска, который хотите удалить. Попробуйте добавить в пул новый диск размером, равным размеру диска, который вы хотите удалить, а затем повторите попытку.
Windows в числе своего арсенала предусматривает несколько возможностей по созданию программного RAID . Это в первую очередь старая системная функция по работе с динамическими дисками, в рамках которой можно, в частности, создавать специальные разделы из нескольких устройств информации с реализацией конфигураций RAID 0, 1 и 5. А Win8.1 и Win10 на своём борту содержат более современную технологию – дисковые пространства.
Что это за технология и как её использовать?
Зачем распределять пулы по разным устройствам и группам устройств
Размещение пулов на разных устройствах (HDD/SSD) нужно, чтобы использовать оборудование более эффективно. Например, когда в кластере есть и магнитные диски, и SSD, логично разместить индексный пул или пул с метаданными файловой системы на SSD, а пулы с данными — на HDD.
Физическое размещение пулов на разных серверах используют, когда нужно, чтобы у каждого пула был разный домен отказа, а также когда надо распределить данные по разным серверам одного типа. Например, кластер состоит из магнитных дисков, но часть из них это небольшие SAS-диски с 15000 RPS, а другая часть — большие и медленные диски с черепичной записью. На быстрых размещают «горячие» данные, на медленных — «холодные».
Второй сценарий менее распространённый, поэтому начнём с него.
Создание дискового пространства
Важно: все данные с дисков, используемых для создания дискового пространства, будут удалены в процессе.
Создать дисковые пространства в Windows 10 можно с помощью соответствующего пункта в панели управления.
В проводнике Windows 10 созданное дисковое пространство будет отображаться как обычный диск компьютера или ноутбука, для которого доступны все те же действия, которые доступны для обычного физического диска.
При этом, если вы использовали дисковое пространство с типом устойчивости «Зеркало», при выходе из строя одного из дисков (или двух, в случае «трехстороннего зеркала») или даже при их случайном отключении от компьютера, в проводнике вы все так же будете видеть диск и все данные на нём. Однако, в параметрах дискового пространства появятся предупреждения, как на скриншоте ниже (соответствующее уведомление также появится в центре уведомлений Windows 10).
Если такое произошло, следует выяснить, в чем причина и при необходимости добавить новые диски в дисковое пространство, заменив неисправные.
Функция «Дисковые пространства» в системе Windows 10 помогает защитить данные в случае сбоя жесткого диска и позволяют увеличить объем дискового пространства по мере добавления дисков для компьютера.
С помощью технологии «Дисковые пространства» можно создавать группы (пулы хранилищ), состоящие из двух или большего числа дисков, а затем создавать из них виртуальные диски (места для хранения). В этих местах обычно хранятся две копии данных. Даже если один диск выйдет из строя, нетронутой останется копия данных. Если осталось мало места для хранения, добавьте больше дисков в пул носителей.
4. Тип устойчивости
Тип устойчивости – это функционал массива, аналог той или иной конфигурации RAID . Технология предлагает нам 4 таких типа.
Простой тип — это может как обычный раздел на базе одного или нескольких носителей, так и аналог RA >(как минимум) скоростью чтения и записи данных. При выходе из строя одного из дисков теряется вся информация. Файловая система – только NTFS .
Двухстороннее зеркало – это аналог RA >NTFS , и ReFS .
Трёхстороннее зеркало – это аналог RA >NTFS , и ReFS .
Чётность – это аналог RA >NTFS .
Следует ли обновлять пул дисков
После обновления до Windows 10 мы рекомендуем обновить существующие пулы. Обновленный пул позволяет оптимизировать использование жесткого диска.
Примечание: обновленные пулы не совместимы с предыдущими версиями Windows.
7. Переустановка Windows и подключение массива к другим компьютерам
Поддерживающие же технологию версии Windows при переустановке или подключении массива к другому компьютеру обнаружат его автоматически, без нашего вмешательства. Непосредственно во время переустановки ОС мы будем видеть массив как единое устройство информации. Кстати, если переустанавливается EFI -система Windows, необходима внимательность, чтобы по ошибке не удалить или не отформатировать MSR -раздел дискового пространства, а не ОС.
На дисковое пространство даже можно установить второю Windows. Вот только делать этого не стоит. Вторая ОС установится, но не сможет запускаться. Да и ещё и затрёт загрузчик первой ОС, и его придётся восстанавливать.
дисковые пространства помогает защитить данные от сбоев дисков и расширить объем хранилища при добавлении дисков на компьютер. Она позволяет сгруппировать несколько дисков (два и более) в пул носителей, а затем использовать его емкость для создания виртуальных дисков — дисковых пространств. В дисковых пространствах обычно хранятся две копии данных, поэтому в случае сбоя одного из дисков у вас по-прежнему будет неповрежденная копия. Если емкость заканчивается, в пул носителей можно просто добавить другие диски.
Вам нужно хотя бы два дополнительных диска (в дополнение к диску, где Windows установлен). Это может быть внутренний или внешний жесткий диск или твердотельный накопитель. В дисковых пространствах можно использовать разнообразные типы дисков, в том числе USB, SATA и SAS.
Добавьте или подключите диски, которые вы хотите сгруппировать в дисковом пространстве.
Перейдите на панель задач, введите дисковые пространства в поле поиска и выберите дисковые пространства в списке результатов поиска.
Выберите Создать новый пул и дисковое пространство.
Выберите диски, которые вы хотите добавить в новое дисковое пространство, и нажмите кнопку Создать пул.
Придай диску имя и букву, а затем выберите макет. Структуры Двухстороннее зеркало, Трехстороннее зеркало и Четность помогут защитить файлы в дисковом пространстве от сбоя диска.
Введите максимальный размер дискового пространства и выберите Создать дисковое пространство.
Простые пространства обеспечивают высокую производительность, но не защищают файлы от сбоя диска. Они лучше всего подходят для временных данных (например, файлов обработки видео), черновиков в редакторе изображений и файлов промежуточных объектов компилятора. Для простых пространств требуется по крайней мере два диска.
Зеркальные пространства обеспечивают высокую производительность и защищают файлы от сбоя диска, храня несколько копий. В пространствах типа "двухстороннее зеркало" создается две копии файлов. Они обеспечивают защиту от сбоя одного диска, а пространства типа "трехстороннее зеркало" — от сбоя двух дисков. Они хорошо подходят для хранения разнообразных данных, от универсальной общей папки до библиотеки виртуальных жестких дисков. Если зеркальное пространство отформатировано с помощью файловой системы Resilient File System (ReFS), то Windows будет автоматически поддерживать целостность данных, что обеспечит дополнительную защиту от сбоя диска. Для двухнабных зеркальных пробелов требуется не менее двух дисков, а для трехнабных зеркальных пробелов — не менее пяти.
Пространства с контролем четности обеспечивают эффективность хранения и защищают файлы от сбоя диска, храня несколько копий. Они лучше всего подходят для архивных данных и потокового мультимедиа, например музыки и видео. Для защиты от сбоя одного диска в этой структуре хранилища требуется по крайней мере три диска, а для защиты от сбоя двух дисков — по крайней мере семь.
После обновления до Windows мы рекомендуем обновить существующие пулы. Обновленный пул позволяет оптимизировать использование дисков и удалять диски из пула, не влияя на защиту пула от сбоев дисков.
Примечание: Обновленные пулы несовместимы с предыдущими версиями Windows.
При добавлении новых дисков в существующий пул мы емким оптимизировать использование дисков. При этом некоторые данные будут перемещены на новый диск, чтобы оптимизировать использование емкости пула. Это происходит по умолчанию при добавлении нового диска в обновленный пул Windows вы увидите Windows чтобы распространить существующие данные на все диски, выбранные при добавлении диска. Однако если вы сняли этот флажок или добавили диски до обновления пула, вам нужно вручную оптимизировать использование диска. Для этого в поле поиска на панели задач введите дисковые пространства, выберите Дисковые пространства из списка результатов поиска, а затем щелкните Optimize drive usage.
Если вы создали пул Windows или обновили существующий пул, вы сможете удалить диск из него. Данные, хранимые на этом диске, будут перемещены на другие диски в пуле, и вы сможете использовать диск для другого пользования.
В поле поиска на панели задач введите дисковые пространства и выберите пункт Дисковые пространства из списка результатов поиска.
Выберите Изменить параметры > Физические диски, чтобы просмотреть все диски в пуле.
Найдите нужный диск и выберите Prepare for removal > Prepare for removal. Не отключайте компьютер, пока диск не будет готов к удалению. Это может занять несколько часов, в зависимости от количества сохраненных на нем данных.
(Необязательно) Чтобы ускорить подготовку диска, не переводить компьютер в спящий режим. Выберите Начните> Параметры> Система> Power & аккумулятор> Экран и спящий режим. Рядом с рядом с после подключения переключить устройство в спящий режим после выбора Никогда .
Когда статус диска изменится на Ready to remove, выберите Удалить > Удалить диск. Теперь вы можете отключить диск от компьютера.
Примечание: Если у вас возникают проблемы при попытке подготовить диск к удалению, возможно, в пуле недостаточно свободного пространства для хранения всех данных с диска, который вы хотите удалить. Добавьте в пул новый диск такого же размера, как и диск, который вы собираетесь удалить, и повторите попытку.
дисковые пространства помогает защитить данные от сбоев дисков и расширить объем хранилища при добавлении дисков на компьютер. Она позволяет сгруппировать несколько дисков (два и более) в пул носителей, а затем использовать его емкость для создания виртуальных дисков — дисковых пространств. В дисковых пространствах обычно хранятся две копии данных, поэтому в случае сбоя одного из дисков у вас по-прежнему будет неповрежденная копия. Если емкость заканчивается, в пул носителей можно просто добавить другие диски.
Вам нужно хотя бы два дополнительных диска (в дополнение к диску, где Windows установлен). Это может быть внутренний или внешний жесткий диск или твердотельный накопитель. В дисковых пространствах можно использовать разнообразные типы дисков, в том числе USB, SATA и SAS.
Добавьте или подключите диски, которые вы хотите сгруппировать в дисковом пространстве.
Перейдите на панель задач, введите дисковые пространства в поле поиска и выберите дисковые пространства в списке результатов поиска.
Выберите Создать новый пул и дисковое пространство.
Выберите диски, которые вы хотите добавить в новое дисковое пространство, и нажмите кнопку Создать пул.
Придай диску имя и букву, а затем выберите макет. Структуры Двухстороннее зеркало, Трехстороннее зеркало и Четность помогут защитить файлы в дисковом пространстве от сбоя диска.
Введите максимальный размер дискового пространства и выберите Создать дисковое пространство.
Простые пространства обеспечивают высокую производительность, но не защищают файлы от сбоя диска. Они лучше всего подходят для временных данных (например, файлов обработки видео), черновиков в редакторе изображений и файлов промежуточных объектов компилятора. Для простых пространств требуется по крайней мере два диска.
Зеркальные пространства обеспечивают высокую производительность и защищают файлы от сбоя диска, храня несколько копий. В пространствах типа "двухстороннее зеркало" создается две копии файлов. Они обеспечивают защиту от сбоя одного диска, а пространства типа "трехстороннее зеркало" — от сбоя двух дисков. Они хорошо подходят для хранения разнообразных данных, от универсальной общей папки до библиотеки виртуальных жестких дисков. Если зеркальное пространство отформатировано с помощью файловой системы Resilient File System (ReFS), то Windows будет автоматически поддерживать целостность данных, что обеспечит дополнительную защиту от сбоя диска. Для двухнабных зеркальных пробелов требуется не менее двух дисков, а для трехнабных зеркальных пробелов — не менее пяти.
Пространства с контролем четности обеспечивают эффективность хранения и защищают файлы от сбоя диска, храня несколько копий. Они лучше всего подходят для архивных данных и потокового мультимедиа, например музыки и видео. Для защиты от сбоя одного диска в этой структуре хранилища требуется по крайней мере три диска, а для защиты от сбоя двух дисков — по крайней мере семь.
После обновления до Windows мы рекомендуем обновить существующие пулы. Обновленный пул позволяет оптимизировать использование дисков и удалять диски из пула, не влияя на защиту пула от сбоев дисков.
Примечание: Обновленные пулы несовместимы с предыдущими версиями Windows.
При добавлении новых дисков в существующий пул мы емким оптимизировать использование дисков. При этом некоторые данные будут перемещены на новый диск, чтобы оптимизировать использование емкости пула. Это происходит по умолчанию при добавлении нового диска в обновленный пул Windows вы увидите Windows чтобы распространить существующие данные на все диски, выбранные при добавлении диска. Однако если вы сняли этот флажок или добавили диски до обновления пула, вам нужно вручную оптимизировать использование диска. Для этого в поле поиска на панели задач введите дисковые пространства, выберите Дисковые пространства из списка результатов поиска, а затем щелкните Optimize drive usage.
Если вы создали пул Windows или обновили существующий пул, вы сможете удалить диск из него. Данные, хранимые на этом диске, будут перемещены на другие диски в пуле, и вы сможете использовать диск для другого пользования.
В поле поиска на панели задач введите дисковые пространства и выберите пункт Дисковые пространства из списка результатов поиска.
Выберите Изменить параметры > Физические диски, чтобы просмотреть все диски в пуле.
Найдите нужный диск и выберите Prepare for removal > Prepare for removal. Не отключайте компьютер, пока диск не будет готов к удалению. Это может занять несколько часов, в зависимости от количества сохраненных на нем данных.
(Необязательно) Чтобы ускорить подготовку диска, не переводить компьютер в спящий режим. В поле поиска на панели задач введите Параметры питания и спящего режима, а затем выберите Параметры питания и спящего режима. В разделе При питании от сети переходить в спящий режим через выберите Никогда.
Когда статус диска изменится на Ready to remove, выберите Удалить > Удалить диск. Теперь вы можете отключить диск от компьютера.
Примечание: Если у вас возникают проблемы при попытке подготовить диск к удалению, возможно, в пуле недостаточно свободного пространства для хранения всех данных с диска, который вы хотите удалить. Добавьте в пул новый диск такого же размера, как и диск, который вы собираетесь удалить, и повторите попытку.
В Ceph можно распределять пулы с данными по разным типам серверов: «горячие» данные хранить и реплицировать на SSD, «холодные» — на HDD. Кроме того, пулы одного кластера можно разделять физически. В статье расскажем, как это сделать.
Статья подготовлена на основе лекции Александра Руденко, ведущего инженера группы разработки «Облака КРОК». Лекция доступна в рамках курса по Ceph в «Слёрме». Тема была добавлена уже после релиза видеокурса, в январе 2021. Также в январе в рамках развития курса появились новые практические задания:
- Установка при помощи cephadm.
- Установка при помощи Ansible.
- Использование Ceph: объектное хранилище.
- Пулы и классы хранения Ceph.
3. Создание дискового пространства
В окно создания дискового пространства попадём автоматически сразу же после создания пула, а также при ручном запуске этой операции.
Здесь можем задать пространству любое имя и выбрать букву. Из обязательных настроек:
• Выбор типа устойчивости, по сути, конфигурации RAID ;
• Выбор файловой системы, если кроме NTFS предлагается ReFS ;
• Задание размера.
Размер, как упоминалось, можно установить любой, хоть и не обеспеченный носителями в пуле, на перспективу их добавления. Но если мы не собираемся больше ничего добавлять, тогда можем:
• Оставить значение по умолчанию для простого типа (RAID 0) , это будет суммарный объём всех носителей;
• Для отказоустойчивых массивов указать размер наименьшего по объёму диска.
Размер можем разделить на 2, 3, 4 и более частей. И создать несколько пространств по типу того, как мы на обычном диске формируем разные разделы для удобства каталогизации данных.
В итоге жмём кнопку создания.
Дисковое пространство в проводнике теперь станет доступно нам как обычный раздел. В управлении дисками носители пула больше не будут видны как отдельные устройства. И будут значиться по порядковому номеру последнего из них.
6. Удаление дискового пространства
Если в дисковом пространстве больше нет надобности, его можно удалить.
Но чтобы носители были доступны для формирования структуры разделов и использования в отдельности, необходимо удалить и сам пул, как рассматривалось выше.
2. Пул носителей
Пул носителей – это точка сборки жёстких дисков, создание и настройка непосредственно самого массива (вне зависимости от его функциональности) . В пул не может быть добавлен SSD или HDD , на котором установлена текущая Windows. Для старта использования дисковых пространств потребуется как минимум один пустой (или с ненужными данными) жёсткий диск. Но, безусловно, лучше, чтобы их было как минимум два, так сразу можно будет оценить выгоды работы с массивом. С создания пула, собственно, и начинается работа с этой технологией. Жмём кнопку его создания.
Увидим все подключённые к компьютеру устройства информации, которые могут быть добавлены в пул. Они пустые неотформатированные и отформатированные будут отдельно распределены по соответствующим разделам. Здесь можем снять галочки с устройств, которые мы не собираемся использовать для массива. Затем жмём «Создать пул». Напомним, диски с имеющейся информацией впоследствии потеряют её.
Далее автоматом запустится создание дискового пространства. Но мы можем нажать кнопку отмены и немного разобраться с управлением пула. После того, как мы его создали, он будет отображаться в главном окне технологии. Здесь увидим справочную информацию об общем и по факту задействованном объёме, информацию о носителях пула, сможем в будущем удалять их и добавлять новые, переименовывать для удобства восприятия. Ну и при необходимости сможем удалить сам пул.
Удаление дисков из пула не всегда будет доступно. В некоторых случаях потребуется прежде добавление нового устройства информации.
Знакомство с утилитой Poolmon
Для анализа пулов можно использовать программу Poolmon (но придется установить WDK Tools). Также доступны разные счетчики производительности.
Запустить утилиту можно так:
Вот так выглядит окно Poolmon:
Клавиша «?» во время выполнения Poolmon вызывает экран со справочной информацией:
Чтобы выйти из справки нажмите “Esc“.
Клавишей «p» можно переключаться на режимы отображения:
- оба пула,
- только выгружаемый,
- только не выгружаемый.
Например, клавишей «p» настройте чтобы выводился только не выгружаемый пул, затем нажмете клавишу «D» для сортировки по столбцу Diff (разность), так вы узнаете, какие структуры наиболее многочисленны в не выгружаемом пуле.
За описаниями тегов пулов, используемых Windows, обращайтесь к файлу Pooltag.txt в подкаталоге Triage каталога, в котором размещается инструментарий отладки для Windows (C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\triage). Также информацию по тегам можно получить утилитой string, показанной чуть ниже.
Столбцы Poolmon:
- Tag — тег указывает на драйвер который использует пул памяти;
- Type — тип пула (выгружаемый или не выгружаемый);
- Allocs — количество всех операций выделения (в скобках изменение с момента последнее обновления программы);
- Diff — разность между количеством выделений и освобождений памяти;
- Bytes — общее количество байтов, потребляемых тегом(в скобках изменение с момента последнее обновления программы);
- Per Alloc — размер одного экземпляра данного тега в байтах.
1. О технологии
Итак, в версиях Windows 8.1 и 10 реализована технология по типу программного RAID , называется «Дисковые пространства». Реализована в панели управления.
Предназначается для создания производительных и отказоустойчивых дисковых массивов. С помощью этой технологии можем два и более жёстких диска объединить в одно дисковое пространство, по сути, в единый пользовательский (несистемный) раздел. И хранить на этом разделе что-то не особо важное в случае конфигурации без отказоустойчивости или, наоборот, что-то важное, обеспечив этим данным двух- или трёхсторонние зеркала. Дисковые пространства могут быть сформированы из разного типа устройств информации – внутренних SATA , SAS и внешних USB-HDD .
Чем эта технология отличается от динамических дисков? Дисковые пространства:
• В большей степени эмулируют аппаратный RAID ;
• Лишены многих недостатков динамических дисков;
• При зеркалировании позволяют задействовать относительно современную наработку Microsoft — отказоустойчивую файловую систему ReFS ;
• Не предусматривают, как динамические диски, возможность зеркалирования самой Windows (очевидно, как лишней функции в свете иных возможностей восстановления работоспособности ОС) .
Дисковое пространство – это территория с нуля, при её создании жёсткие диски форматируются, их структура и содержимое теряются. Тогда как при работе с динамическими дисками мы к любому существующему разделу без потери данных можем добавить его раздел-зеркало.
Как и динамические диски, современная технология программного RAID позволяет создавать массивы из разных жёстких дисков, в том числе и по объёму. Но последняя, в отличие от первой, не оставляет незанятое массивом место на одном из носителей меньшего объёма. Чтобы это незанятое место можно было присоединить к другим разделам или создать отдельный раздел. Наоборот, при создании дисковых пространств мы не ограничены объёмом одного из жёстких. Мы можем изначально указать любой виртуальный размер, а впоследствии обеспечить его реальными ресурсами устройств информации, добавив их к массиву — так называемому пулу носителей. Реализация последнего позволяет нам действовать несколько гибче, чем при оперировании динамическими дисками.
Немного о главном
В прошлый раз мы рассказывали вам о том, как работает флэш-память. Принцип ее работы визуально отлично характеризует картинка ниже. Блок (X) удалось очистить для последующей записи благодаря наличию свободного блока (Y) — новые страницы были записаны в блок (X), а затем в (Y), после чего и произошло стирание блока (X).
Это лишь один из примеров работы флэш-памяти. Суть в том, что когда на SSD много свободного пространства, то и таких блоков, как (Y), становится много. Хотя скорость работы самого контроллера является константой, производительность самого накопителя может изменяться. Чем меньше свободных блоков у флэш-памяти, тем больше процессов ей приходится выполнять, прежде чем данные будут записаны, а значит и скорость работы накопителя будет страдать. К примеру, при заполнении SSD на 98 %, свободных блоков остается все меньше и меньше. Вопрос один: что произойдет, если во время такой загруженности накопителя вы начнете записывать большие объемы данных? Здесь-то нам и пригодится резервная область SSD.
Диагностика утечки памяти в пуле
Проведем диагностику утечки памяти в пулах. Утечка генерируется программой Notmyfault из пакета Sysinternals.
Выполните следующие действия:
- Запустите программу Notmyfault.exe для разрядности вашей ОС.
- Notmyfault.exe загружает драйвер устройства Myfault.sys и выводит диалоговое окно Not Му Fault с выбранной вкладкой Crash. Щелкните на вкладке Leak. Введите в поле Leak/second значение 1000 Кбайт.
- Щелкните на кнопке Leak Paged. Программа начинает отправлять драйверу Myfault запросы на выделение памяти из выгружаемого пула.
- Пока в пуле существует утечка, откройте Диспетчер задач, перейдите на вкладку «Быстродействие» (Performance) и выберите категорию «Память» (Memory). Обратите внимание: значение «Выгружаемый пул» (Paged Pool) постепенно растет.
- Чтобы определить, с каким тегом пулов связана утечка, запустите программу Poolmon и нажмите клавишу “В“, чтобы отсортировать информацию по количеству байтов.
- Клавишей Р настройте, чтобы в Poolmon отображался только выгружаемый пул. Обратите внимание: тег пула Leak поднимается в начало списка. Также Poolmon помечает изменения в выделенной памяти подсветкой изменяемых строк:
- Щелкните на кнопке Stop Paged, чтобы не исчерпать выгружаемый пул в вашей системе.
- Запустите программу Strings (из пакета Sysinternals), чтобы найти исполняемые файлы драйверов с тегом пула Leak.
В результате поиска должен быть найден файл Myfault.sys, тем самым подтверждается что этот драйвер был виноват в утечке памяти.
Таким образом, если вы видите, что какой-то из пулов начал расти. То теперь вы знаете как отследить какой из драйверов потребляет слишком много памяти.
В Windows 10 (и 8) присутствует встроенная функция «Дисковые пространства», позволяющая создавать зеркальную копию данных на нескольких физических жестких дисках или же использовать несколько дисков как один диск, т.е. создавать своего рода программные RAID массивы.
В этой инструкции — подробно о том, как можно настроить дисковые пространства, какие варианты доступны и что необходимо для их использования.
Для создания дисковых пространств необходимо, чтобы на компьютере было установлено более одного физического жесткого диска или SSD, при этом допустимо использование внешних USB накопителей (одинаковый размер накопителей не обязателен).
Доступны следующие типы дисковых пространств
- Простое — несколько дисков используются как один диск, какая-либо защита от потери информации не предусмотрена.
- Двухстороннее зеркало — данные дублируются на двух дисках, при этом при выходе из строя одного из дисков, данные остаются доступными.
- Трехстороннее зеркало — для использования требуется не менее пяти физических дисков, данные сохраняются в случае выхода из строя двух дисков.
- «Четность» — создается дисковое пространство с проверкой четности (сохраняются контрольные данные, которые позволяют не потерять данные при сбое одного из дисков, при этом общее доступное место в пространстве больше, чем при использовании зеркал), требуется не менее 3-х дисков.
Как изменить размер резервной области SSD?
Обычно производители дают такую возможность в своих фирменных утилитах для твердотельных накопителей. У OCZ это реализовано очень просто и удобно при помощи специальной утилиты SSD Guru — она не только следит за состоянием SSD, но и мониторит SMART, включает команду TRIM, проверяет автоматически наличие новых прошивок — в общем, незаменимый помощник для пользователей наших накопителей. С самой утилитой мы вас уже знакомили, так что обратим внимание только на ту вкладку, которая нужна в нашем случае.
Переходим во вкладку Tuner и получаем доступ не только к активации Trim, но и настройке over provisioning прямо на лету: достаточно перетащить ползунок и самостоятельно выбрать размер резервной области. В нашем случае, например, есть возможность увеличить spare area до 134 ГБ — при том, что объем самого накопителя составляет 480 ГБ. Получается почти 28 %.
Если же вы хотите сделать это самостоятельно, просто скройте от операционной системы часть накопителя — оставьте на нем неразмеченное пространство.
Как создать дисковое пространство
- Добавьте и подключите диски, которые вы хотите сгруппировать с помощью функции «Дисковое пространство».
- Перейдите к панели задач, введите в поле поиска строку дисковые пространства и выберите Дисковые пространства в списке результатов поиска.
- Выберите пункт Создать новый пул и дисковое пространство.
- Выберите диски, которые вы хотите добавить в новое место хранения, а затем нажмите Создать пул .
- Добавить к диску название и букву, а затем выберите структуру. Структуры типа Двухстороннее зеркало, Трехстороннее зеркало и Четность повышают защиту файлов в месте для хранения от последствий возможной аварии диска.
- Введите максимальный размер, которого может достичь место для хранения, а затем выберите пункт Создать дисковое пространство.
Берегите свои накопители!
Безусловно, даже без манипуляций с резервной областью твердотельный накопитель прослужит вам долго: благо большинство мифов о недолговечности SSD удалось развеять. По возможности накопители, разумеется, стоит беречь, но только если это не ограничивает ваши потребности. Самый простой способ — оставлять свободным от 10 до 20 % доступного вам объема SSD: именно вам, а не контроллеру.
Почему стоит оптимизировать использование диска
При добавлении новых дисков в существующий пул стоит оптимизировать использование дискового пространства. Это позволит перенести часть данных на вновь добавленный диск, обеспечивая оптимальное использование возможностей пула.
При добавлении нового диска в обновленный пул Windows 10 оптимизация выполняется автоматически – флажок Оптимизировать использование дискового пространства, чтобы разложить существующие данные на все диски установлен при добавлении нового диска. Однако, если этот флажок снят или диски будут добавлены перед обновлением пула, нужно вручную оптимизировать использование дискового пространства.
Чтобы это сделать, введите на панели задач в поле поиска строку дисковое пространство и выберите Дисковое пространство в списке результатов поиска, а затем выберите пункт Оптимизировать использование диска.
Какой диск создать: простой, зеркальный или четный
- Простое пространство предназначено для повышения производительности, но они не обеспечивают защиты файлов на случай сбоя жесткого диска. Лучше всего подходят для хранения временных данных (таких как файлы рендеринга видео), резервное копирование файлов в редакторе изображений и файлы промежуточных объектов компилятора. Чтобы создать простое дисковое пространство требуется, по крайней мере, два диска.
- Зеркальное пространство предназначено для повышения производительности и обеспечивает хранение нескольких копий для защиты файлов на случай сбоя жесткого диска. Зеркальные пространства в два этапа образуют две копии файлов и устойчивы к поломке одного диска, в свою очередь, трехсторонние зеркальные пространства устойчивы к отказу двух дисков. Идеально подходят для хранения различных данных, от файловых ресурсов общего назначения до библиотеки виртуальных жестких дисков. В случае форматирования пространство будет отформатировано в формат файловой системе ReFS. Зеркальные пространства требуют, по крайней мере, двух дисков, а трехсторонние – не менее пяти.
- Пространства с контролем четности предназначены для обеспечения производительности и обеспечивают хранение нескольких копий для защиты файлов на случай сбоя жесткого диска. Пространства с контролем четности лучше всего подходят для хранения данных архива и потокового мультимедиа, такие как музыка и видео. Такое дисковое пространство требует не менее трёх дисков, в целях обеспечения защиты на случай сбоя одного диска – и не менее семи дисков, чтобы обеспечить защиту на случай выхода из строя двух дисков.
Просмотр системных драйверов
Чтобы посмотреть какие системные драйверы загружены в системе можно выполнить следующее:
А что с производительностью?
Для компаний очень важно иметь накопители с большим количеством резервной области, поскольку именно там чаще всего происходят атаки случайными данными. Чем больше блоков резервной области в распоряжении контроллера, тем больше вероятность того, что контроллер сработает верно, и производительность SSD не будет падать даже при большой нагрузке. У OCZ на эти случаи есть отличные корпоративные решения — Z-Drive 6000 NVMe, Toshiba Hawk 4R (THNSN8) и Hawk 4E (THNSN8). 2900 МБ/с на чтение и 1900 МБ/с на запись, емкость до 6,4 ТБ.
Но не будем голословными, лучше покажем, как зависит производительность SSD от объема резервной области при помощи тестов. Для этого возьмем один из накопителей c неоптимизированным под увеличенную резервную область контроллером и будем постепенно увеличивать размер spare area — от 12 % вплоть до 50 %. Последний вариант в домашних условиях, конечно же, исключен, но важно уловить суть.
Сравнивать будем по показателю IOPS — количеству операций ввода и вывода — проще говоря, количеству блоков, которое считывается или записывается на носитель. Соответственно, чем это значение выше, тем лучше. Определяется IOPS как частное скорости и размера блока при выполнении операции. Для начала возьмем SSD со стандартным объемом резервной области (около 7 %). Вот какими показателями он может похвастаться в тестах:
А теперь проведем небольшой опыт — увеличим резервную область до 12 % и вновь замерим IOPS.
Разница пусть и небольшая, но все же видна — IOPS явно увеличился. Что ж, не будем на этом останавливаться, увеличим резервную область до 25 % — четверть накопителя теперь доступна только контроллеру.
Думаем, здесь все понятно без слов. Впрочем, отдавать столько под резервную область явно нецелесообразно, поскольку полезной становятся только 3/4 SSD. И вряд ли кто-то будет повторять подобное в домашних условиях, однако для чистоты эксперимента мы все же это сделаем. Да, увеличим spare area до 50 %.
Изменения в производительности заметны, но уж точно не настолько, чтобы отдавать половину накопителя под резерв. Это попросту нецелесообразно, поскольку рост производительности в данном случае не сможет компенсировать потерянную емкость SSD. Одно ясно точно: размер резервной области действительно влияет на быстродействие накопителя. Если решите повторить такой тест со своими SSD, учитывайте, что результаты могут отличаться в зависимости от контроллера, прошивки и, собственно, производителя и модели самого накопителя.
Помимо производительности, резервная область также снижает износ твердотельных накопителей и продлевает срок их службы. Здесь не нужно проводить какие-либо тесты: очевидно, если выполняется меньше операций чтение/записи, количество записанных данных также уменьшается. Так что чем больше spare area, тем дольше накопитель вам прослужит (но злоупотреблять этим, как мы сказали, не стоит).
Что такое резервная область, и зачем она нужна
На самом деле операционные системы не распознают весь объем памяти твердотельных накопителей. Резервная область SSD или так называемая spare area выделяется по принципу over-provisioning и видна только контроллеру. Чтобы понять, как она работает, полезно рассмотреть, а как же, собственно, измеряется емкость SSD.
Емкость SSD измеряется в гигабайтах (десятичных приставках) и гибибайтах (двоичных приставках). Если в одном гигабайте 1 миллиард байт, то в гибибайте ~ 1,074 x 10 в девятой степени байт. Производители, в том числе OCZ, указывают емкость в гигабайтах, при этом операционная система производит свой расчет в гибибайтах. Из-за этого получается так, что фактически емкость накопителя меньше заявленной.
Вот, например, интересная статистика по одному из накопителей. У него на борту 264 ГиБ NAND, но пользователю из них доступны только 186 ГиБ при заявленных производителем 200 ГБ. Остальная часть SSD используется в качестве резервной области для улучшения производительности и выносливости накопителя.
Как правило, резервная область составляет около 7 % общей емкости NAND. Для расчета реальной емкости SSD в ГиБ необходимо поделить емкость в гигабайтах на 1,073741824. В случае с накопителем на 256 ГБ это будет 238,4 ГиБ. Оставшаяся часть SSD и используется как spare area. Для наглядности еще раз обратимся к тому, как работает флэш-память.
Часто задают вопрос, почему некоторые SSD имеют емкость 120/240/480 ГБ, когда другие 128/256/512 ГБ. В случае с OCZ физический объем данных пар емкостей накопителя одинаков. Разница заключается в объеме резерва для различных моделей: при полных объемах 128/256/512ГБ резерва нет, а на 120/240/480ГБ присутствует резервная область, недоступная пользователю.
Зависимость между усилением записи (Write amplification) и резервной областью хорошо отображена в отчете исследовательской лаборатории IBM:
Как видите, чем больше резервная область, тем меньше усиление записи. Из-за наличия такой зависимости между ними производители и рекомендуют не загружать твердотельный накопитель полностью, а оставлять от 10 % до 20 % свободного места. Для чего же SSD вообще нужна резервная область?
Во-первых, так называемый сброс мусора (garbage collection), который мы разобрали на первой картинке, осуществляется реже за счет того, что операционная система не может получить доступ в резервную область и заполнить свободные блоки памяти — следовательно, контроллер получает доступ к большему количеству блоков памяти. Поэтому SSD всегда имеет свободные блоки «про запас», что немаловажно. Кроме того, если один из блоков памяти выходит из строя, контроллер берет свободный из резервной области. Также spare area влияет на выравнивание износа: если данные будут записываться в один и тот же блок, ресурс накопителя будет истощаться за счет увеличения количества циклов перезаписи блоков. Контроллер распределяет данные равномерно, тем самым выравнивая износ.
5. Выход из строя одного из носителей
Дисковые пространства с отказоустойчивостью при выходе из строя одного или нескольких носителей продолжат своё функционирование. Но в окне технологии в панели управления увидим предупреждение о снижении отказоустойчивости. Конкретный носитель, с которым возникли проблемы, также будет отмечен предупреждением.
Физическое размещение пулов на разных серверах
Для примера возьмём кластер с простой CRUSH-топологией: есть root — так называемый корневой элемент, внутри него есть 3 хоста и какое-то количество OSD. Стоек и дата-центров нет. Это простая дефолтная топология, которая появляется при создании кластера.
Есть пулы, часть которых RGV создал сам, часть созданы вручную.
Что такое пул в Ceph
В Ceph при создании кластера и пулов нет возможности сказать: «создай мне кластер вот на этих серверах» или «используй диски с этих серверов, чтобы размещать данные этого пула». Потому что пул в Ceph — это высокоуровневый каталог с практически плоским пространством объектов. Есть группировка по стойкам, дата-центрам и OSD, но в целом это единое пространство или группа object stores.
В некоторых других системах хранения сначала создаётся пул, а потом в него добавляются ресурсы. Пользователь говорит: «добавь вот этот диск вот в этот пул, добавь вот этот сервер вот в этот пул» — то есть пул как бы собирается из какого-то количества ресурсов. Это более понятная концепция.
В Ceph всё иначе. Здесь пул — это просто каталог, который нельзя настроить так, чтобы он задействовал только часть ресурсов. Созданные пулы по умолчанию «размазываются» по всем дискам серверов. Внутри кластера могут быть медленные диски, SSD, серверы с 60-ю дисками — неважно, данные пула размажутся по всем серверам и OSD в зависимости от веса.
Разместить пул на выделенных серверах в Ceph нельзя. Предположим, нужно добавить в кластер 3 сервера и разместить на них особый пул, данные которого не будут попадать на соседние серверы. Доступным инструментарием Ceph сделать это невозможно. Да, можно отредактировать CRUSH, но это сложно и чревато разрушением кластера, поэтому делать так не рекомендуют. Рассмотрим более безопасный способ.
Как изолировать пул на группе хостов:
- создать новый корневой элемент;
- в этот корневой элемент добавить хосты, стойки и дата-центры (если нужно);
- с новых хостов вести OSD — у вас получится два отдельных root’а;
- в новом root’е создать политику размещения;
- новый пул создавать в этом root’е.
Посмотрим на примере: допустим, есть хост, и на этом хосте нужно разместить определённый пул. Для начала создадим объект хоста.
В нашем примере нужно создать объект с именем node 4 и типом host.
Объект создан, он появился вне дефолтного дерева.
Теперь надо создать новый root. Синтаксис команды тот же, меняется только имя и тип объекта.
Новый root появляется на том же уровне, что и host — вне дефолтного дерева.
Созданы две сущности, которые никак друг с другом не связаны, но в нормальной иерархии host находится внутри root. Чтобы их связать, надо переместить хост node4 в новый root.
Новый сервер добавлен и правильно размещен в иерархии, значит можно добавить OSD с этого сервера.
У нас есть готовый диск (называется “vdb”), из которого можно сделать OSD.
Сначала сотрём заголовки:
Получим бутстрапный ключ. Он нужен, чтобы сгенерировать персональный ключ для создания OSD.
Запустим создание OSD:
При создании OSD автоматически включается в CRUSH-иерархию: её хост добавляется в CRUSH-дерево. То есть можно было просто запустить создание OSD, и она бы создала запись в CRUSH для себя и своего хоста. Возможно, он был бы в дефолтном root’е, и нам бы пришлось его перемещать, но это не проблема.
OSD появилась в списке. Обратите внимание: ей присвоен следующий по счёту номер (в нашем случае — 9). То есть это не какое-то новое исчисление OSD, пространство идентификаторов OSD остаётся единым.
В нашем примере создан только один хост, так как для эксперимента больше не нужно. Но в принципе можно добавить сколько угодно хостов, OSD и получить отдельные, совершенно независимые деревья.
Для проверки выполним команду:
Новая OSD содержит ноль placement groups, потому что из первого дерева они ей не передаются. Разные root’ы — это физически разная топология. У них общие только мониторы и менеджеры.
Placement groups появляются вместе с пулами, в этом root’е мы ещё не создавали пулы, поэтому их нет.
CRUSH-топология создана. Теперь нужна политика репликации — распределения данных по этой топологии.
Как создать политику репликации
Дефолтная политика — это репликация по хостам, но можно задать репликацию по стойкам, дата-центрам и т. д.
Создадим политику для root’а через правило распределения данных:
new_root_rule — название политики,
new_root — нужный root,
host — то, как реплицировать данные, в нашем случае по хостам.
Если вместо host написать datacenter , то данные будут реплицироваться по дата-центрам: в каждом ДЦ будет храниться по одной копии.
Новое правило создано, теперь надо создать новый пул.
В команде надо указать созданное ранее правило ( new_root_rule ) и сколько нужно создавать PGS: первая цифра — количество PGS, вторая цифра — сколько из них доступно для аллокации ( 32 32 ). В Ceph часть placement groups пула могут быть закрыты для аллокации. Например, в пуле 128 PGS, а открыты для аллокации только 32. В нашем примере открыты 32 из 32 групп.
В текущем new_root только одна политика, которая говорит реплицировать данные по хостам. Однако можно создать несколько. Создавая новый пул, надо указывать политику. Таким образом новый пул связывается с конкретным root’ом, который использован в этой политике.
Теперь на OSD аллоцированы все 32 placement groups, которые были заданы.
Все они в статусе undersized и inactive.
Placement group неактивны, так как им недостаточно ресурсов. Новый пул создался с дефолтными правилами, а среди дефолтных глобальных параметров Ceph есть правило “osd_pool_default_size”, и его параметр равен 3. Таким образом пул создался с числом реплик 3.
Чтобы уменьшить число реплик, сначала надо изменить параметр min_size .
Затем уменьшить собственно размер:
В результате получится пул с replicated size 1.
Проверим командой ceph -s
Предупреждения о том, что placement groups находятся в статусе inactive и undersized, исчезли. Правда, появилось новое предупреждение: у пула выключена репликация. Но мы не будем на этом останавливаться.
В результате создана всего одна OSD и один хост, но это полностью рабочая конфигурация (рабочая в том смысле, что она может работать, а не в том, что она где-то применима; к счастью, никто не запускает Ceph для одного хоста).
Мы разграничили пулы, но при этом сохранили их в одном пространстве. Если что-то сломается в одном дереве, это никак не зааффектит другое дерево.
Важно: Старайтесь проводить манипуляции с пулами и распределением по классам устройств на этапе создания кластера, когда в нем еще мало данных. Потому что позже, когда кластер заполнен продакшн-данными, при смене классов устройств и перераспределении пулов между ними, у вас будет массивная ребалансировка.
Пулы системной памяти
Когда система только загружается, диспетчер памяти создает два пула памяти, с динамически изменяемым размером:
- не выгружаемый пул — постоянно находится в оперативной памяти;
- выгружаемый пул — может выгружаться и снова подгружаться в память.
Эти пулы используются компонентами ядра.
Система при старте выделяет необходимый минимум для пулов, а затем позволяет им расти по необходимости, но у пулов есть лимиты.
Узнать лимит пулов для вашей системы можно используя “Process Explorer“, нужно открыть View / System Information и перейти на вкладку “Memory“:
Распределение пулов на разных устройствах
Раньше в Ceph не было понятия «класс устройства». В кластере могли быть SSD и магнитные диски, но нельзя было поместить один пул на SSD, другой на HDD. Относительно недавно ситуация изменилась. Теперь Ceph понимает, что есть HDD и есть SSD, и позволяет назначать на разные устройства разные пулы.
Тип устройства Ceph определяет автоматически, используя параметр rotational (вращающийся). Все, что rotational, он автоматически помечает как HDD, не rotational — как SSD.
В примере используется виртуальная среда, здесь все диски виртуальные, они все rotational, то есть HDD.
Но даже если диски не определяются как SSD автоматически, можно руками снять класс HDD и назначить класс SSD.
В рамках эксперимента пометим как SSD по одному из дисков на каждом сервере.
Для этого надо удалить с них класс HDD, это можно делать сразу для многих дисков:
Класс HDD удалился. Обратите внимание: класс удалился, но репликация не запустилась. Это произошло, потому что в руте по умолчанию используется дефолтное правило, которое не учитывает классы. Все пулы, созданные по дефолтному crush-правилу, будут размещаться по HDD и SSD равномерно. Это важно учитывать.
После удаления класса HDD назначим класс SSD:
Назначенный класс останется даже после рестарта OSD.
Устройства с классом SSD созданы. Теперь переходим к правилам. Все правила можно посмотреть командой:
replicated_rule — дефолтное правило.
new_root_rule — правило для другого root, созданное нами.
Cоздадим новое специальное правило, в котором скажем использовать SSD. Команда та же, что и при создании обычного правила, только вместо create-simple поставим create-replicated .
replicated_ssd — имя правила.
default — имя root’а.
host — тип репликации (репликация по хостам).
ssd — класс устройств (SSD или HDD).
Вот как выглядит созданное правило.
О применении правил поговорим чуть позже, сначала разберёмся с erasure-coding.
Создание erasure-code профиля
Для erasure coding все немного иначе. Создается не CRUSH-правило, а erasure code профиль. Синтаксис немного другой, но принцип тот же.
ec21 — имя.
host — по какому уровню реплицировать дерево.
SSD — класс устройств.
Нужно задать уровень CRUSH-дерева для репликации данных и класс устройства. В результате получается:
- правило, по которому в CRUSH будут размещаться данные,
- профиль erasure-coding, который потом можно использовать для создания erasure-coding пула.
При создании replicated пулов указывают crush rule, которое описывает топологию репликации и устройство. При создании erasure-coding пула указывают профиль, который в принципе является тем же самым, только в нём ещё заданы “k” и “m”.
Посмотреть созданное правило:
Таким образом создан новый erasure-code профиль с размещением на SSD и новый пул, который будет использовать этот профиль.
Применение правил для replicated пулов
Переназначим CRUSH-правило для конкретного пула.
Среди пулов (просмотреть список можно с помощью ceph df ) есть пул с метаданными файловой системы и rgw.meta, который нужно разместить на SSD.
Команда для размещения пулов на SSD:
fs1_meta — название пула.
replicated_SSD — название правила.
После выполнения команды запускается rebalance: те два пула, которым был назначен новый профиль, полностью переезжают на SSD.
Важно: дефолтное правило позволяет остальным пулам аллоцироваться и на SSD, и на HDD. Поэтому на SSD будут placement groups в том числе тех пулов, которые должны быть на магнитных дисках. Их нужно переместить на соответствующие устройства, применив правило для HDD. Опять же, если делать это на этапе, когда в кластере много данных, то случится большой rebalance.
Переместим на HDD несколько пулов:
Как удалять правила
Для пример удалим дефолтное правило “ replicated_rule ”.
В нашем случае команда не сработала, так как правило используется — “is in use”.
Посмотреть, какой пул использует это правило:
В открывшемся списке надо найти параметр “crush_rule”.
Нас интересует crush_rule 0 (т. к. дефолтное правило получает индекс 0). Находим, какой пул использует это правило, перемещаем его на другое правило:
Теперь можно удалить:
Как проверить, что placement groups находятся на правильном классе устройств
У каждого пула есть идентификатор (колонка ID). Все placement groups конкретного пула начинаются с идентификатора этого пула. Например, ec1 мы создали на SSD.
Посмотрим, на каких устройствах размещаются его placement groups. Ищем по идентификатору пула — 9.
На скрине все placement groups пула ec1. Они находятся именно на тех трёх OSD, которые мы раньше специально пометили как SSD — 0, 2 и 4. То есть все данные находятся на правильном классе устройств.
Привет, Гиктаймс! Многие производители SSD советуют оставлять неразмеченную область или определенное свободное пространство на твердотельных накопителях для улучшения производительности. Постараемся разобраться, нужна ли вообще резервная область SSD, и как она влияет на производительность накопителей. По традиции все подробности под катом.
Что нужно для создания дискового пространства
Нужны, по крайней мере, два дополнительных диска (кроме диска, на котором установлена система Windows). Это могут быть внутренние или внешние жесткие диски или твердотельные накопители (SSD). С функцией «Дисковое пространство» можно использовать диски разных типов, включая диски USB, SATA и SAS.
Читайте также: