Что средства Windows, что сторонние программы для распределения места на диске и форматирования разделов по умолчанию настроены так, чтобы за нас оптимально решать вопрос, какого размера должен быть кластер выделенной части дискового пространства. Что такое кластер, что такое его размер, какой размер лучше выбрать в той или иной ситуации, как изменить размер кластера, в том числе без потери данных на разделе диска – во всех этих вопросах попробуем разобраться ниже.
1. Что такое кластер дискового пространства
Кластер – это логическая единица дискового пространства, минимальный его блок, выделяемый для записи файла. У жёстких дисков есть физическая единица дискового пространства – сектор. Сектора могут быть размером 512 или 4096 байт. Это предустановленный производителем жёсткого диска параметр, и он не может быть изменён программными средствами.
Последние могут оперировать только логической единицей – кластером. И оперировать только в рамках возможностей выбранной файловой системы. К примеру, для NTFS размер кластера может быть установлен от 512 байт до 2 Мб (2048 Кб) .
Клон системы Windows с HDD на SSD
Размер кластера, отличный от предлагаемого по умолчанию, мы можем выбрать при форматировании раздела средствами Windows.
Windows 7 и 8.1 позволяют установить размер кластера максимум 64 Кб. В среде же Windows 10 можно выбрать больший размер – от 128 до 2018 Кб.
Размер кластера также можем выбрать по своему усмотрению при создании разделов в штатном управлении дисками. Создаём том (раздел) .
Указываем размер тома.
И на этапе форматирования тома выбираем размер кластера.
Итак, кластер – это единичный блок для размещения файлов. Каждый файл записывается в новый кластер. Файл весом более размера кластера, соответственно, занимает несколько таковых. Чем меньше размер кластера, тем более эффективно будет расходоваться место на диске при условии, что на нём преимущественно хранятся мелкие файлы до 512, 1024, 2048 байт и т.д.
Тогда как при кластере большего размера дисковое пространство будет менее эффективно занято данными с малым весом. Но вопрос об эффективности не будет стоять при условии хранения на диске данных с весом от 64 Кб или иного выбранного размера. При этом ещё и получаем незначительный прирост производительности в скорости чтения и записи HDD в условиях фрагментации. При большем размере кластера фрагментированный файл делится на меньшее количество частей, что уменьшает число смещений считывающей головки HDD .
Как перенести Windows на SSD / Клонируем Windows с HDD на SSD в 2023 году!
2. Насколько значителен прирост производительности при большем размере кластера
Рассчитывать на какой-то весомый прирост производительности HDD даже при максимально возможном размере кластера не стоит. Сам по себе механизм работы HDD имеет массу условностей, и гораздо больше толку в этом плане будет от регулярной процедуры дефрагментации. Прирост в скорости работы с данными будет исчисляться секундами, а то и вовсе миллисекундами. Тем не менее и за них, возможно, стоит побороться при формировании разделов для хранения файлов с весом, исчисляемым преимущественно в мегабайтах или вовсе в гигабайтах.
3. Какой размер кластера для каких целей лучше
Какой размер кластера лучше для системного раздела С ? Установочный процесс Windows, позволяющий прямо на этапе установки системы формировать разделы диска с нераспределённым пространством, не даёт нам возможности выбора размера кластера.
Он по умолчанию задаётся 4096 байт (4 Кб) . И является оптимальным выбором для системного раздела С, поскольку в состав системы и сторонних программ входит огромное множество мелковесных файлов. Изменять его не рекомендуется.
А вот с несистемными разделами можно поэкспериментировать. Но прежде необходимо оценить текущую ситуацию и узнать, какой размер кластера у раздела сейчас. Чтобы потом сделать выводы о приросте производительности.
4. Как узнать размер кластера
Существующий ныне размер кластера на нужном разделе диска отображают сторонние программы для работы с дисковым пространством. Но на скорую руку можно обойтись и без них, для этого нам понадобится всего лишь запущенная с правами админа командная строка.
В неё вводим команду по типу:
fsutil fsinfo ntfsinfo C:
Где вместо C в конце подставляем букву нужного раздела. И смотрим графу «Байт на кластер».
5. Как изменить размер кластера
Как упоминалось в первом пункте статьи, для изменения размера кластера необходимо либо отформатировать раздел, либо удалить его и создать заново. Хоть средствами Windows, хоть сторонним софтом для работы с дисками от Acronis, AOME, Paragon и т.п. Если на разделе имеются данные, их можно временно перенести на другой раздел, другое устройство информации или в облако на крайний случай. И это будет самый правильный вариант.
Изменение размера кластера раздела с имеющимися данными без их временного переноса в другое место – это потенциально рисковая операция. Рисковая операция – во-первых. Длительная по времени — во-вторых, поскольку в рамках её проведения осуществляется перезапись данных под новый размер кластера. В-третьих – такая операция предусматривается только сторонними менеджерами дисков, и обычно в рамках платных возможностей, если базовые функции в таких программах бесплатны. Как, например, в случае с MiniTool Partition Wizard.
5.1. MiniTool Partition Wizard
В любой из коммерческих редакций MiniTool Partition Wizard можем изменить размер кластера без форматирования и пересоздания раздела, с сохранностью данных. Кликаем в окне программы нужный раздел, выбираем функцию изменения кластера.
Смотрим, какой у нас текущий размер. И в выпадающем списке выбираем новый. Затем жмём «Да».
Штатные средства Windows при задании размера кластера предусматривают выбор их показателей в байтах, килобайтах и в случае с Win10 в мегабайтах. Сторонние программы могут предусматривать выбор показателей в иной метрике – в секторах на кластер. Это число в степени двойки. Как ориентироваться?
Просто делим на 2. Если хотим выбрать размер кластера, скажем, 64 Мб, указываем число 128. Если 32 Кб, выбираем число 64. Если 16 Кб – 32. И так далее по этому же принципу.
В главном окне MiniTool Partition Wizard применяем операцию и ожидаем её завершения.
При оперировании системного раздела С или несистемного, но такового, к которому обращаются фоновые системные процессы, программа попросит перезагрузиться. И будет проводить операцию в предзагрузочном режиме без активных системных процессов.
5.2. Acronis Disk Director
Платный Acronis Disk Director, мастодонт на рынке ПО для оперирования дисковым пространством, также предусматривает возможность изменения размера кластера без потери данных. В окне программы выбираем нужный раздел, кликаем соответствующую операцию.
Смотрим, какой сейчас у раздела размер кластера. И из выпадающего перечня выбираем новый.
И, опять же, если оперируемый раздел будет занят обращениями к нему фоновых системных процессов, потребуется перезагрузка и работа программы в предзагрузочном режиме.
Источник: www.white-windows.ru
Устранение ошибок, связанных с размером сектора системного диска более 4 КБ
В этой статье приведены решения для устранения ошибок при установке или запуске экземпляра SQL Server в Windows 11 и Windows Server 2022. Эта статья действительна для всех выпущенных версий SQL Server.
Ошибки, рассмотренные в этой статье, связаны с размером сектора системного диска более 4 КБ.
Область применения: SQL Server всех версий
Симптомы
Сценарий 1. Вы устанавливаете любую версию SQL Server на Windows 11 устройстве. Затем вы увидите ошибки, аналогичные следующему сообщению для компонента Служб ядра СУБД SQL Server:
Feature: Database Engine Services Status: Failed Reason for failure: An error occurred during the setup process of the feature. Next Step: Use the following information to resolve the error, uninstall this feature, and then run the setup process again. Component name: SQL Server Database Engine Services Instance Features Component error code: 0x851A001A Error description: Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
Сценарий 2. Вы устанавливаете любую версию SQL Server на Windows 10 устройстве.
Затем обновите ОС на устройстве до Windows 11. При попытке запустить SQL Server на Windows 11 устройстве служба не запускается и в журнале ошибок SQL Server вы заметите записи, похожие на:
2021-11-05 23:42:47.14 spid9s There have been 256 misaligned log IOs which required falling back to synchronous IO. The current IO is on file C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLDATAmaster.mdf.
Сценарий 3. Вы устанавливаете любую версию SQL Server на Windows 10 устройстве. Затем обновите ОС на устройстве до Windows 11.
При попытке запустить SQL Server на Windows 11 устройстве служба не запускается. В журнале ошибок SQL Server вы заметили записи, похожие на:
Faulting application name: sqlservr.exe, version: 2019.150.2000.5, time stamp: 0x5d8a9215 Faulting module name: ntdll.dll, version: 10.0.22000.120, time stamp: 0x50702a8c Exception code: 0xc0000005 Fault offset: 0x00000000000357ae Faulting process id: 0x1124 Faulting application start time: 0x01d7bf67449d262c Faulting application path: C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLBinnsqlservr.exe Faulting module path: C:WindowsSYSTEM32ntdll.dll
Сценарий 4. Вы устанавливаете LocalDB на Windows 11 устройстве. Установка завершается сбоем, и в журнале ошибок SQL Server вы заметите следующие записи:
2021-12-15 23:25:04.28 spid5s Cannot use file ‘C:UsersAdministratorAppDataLocalMicrosoftMicrosoft SQL Server Local DBInstancesTestInstancemaster.mdf’ because it was originally formatted with sector size 4096 and is now on a volume with sector size 16384. Move the file to a volume with a sector size that is the same as or smaller than the original sector size.
В журнале событий приложений Windows 11 вы заметите записи, похожие на:
Message : Windows API call WaitForMultipleObjects returned error code: 575. Windows system error message is: The application was unable to start correctly (0x%lx). Click OK to close the application. Reported at line: 3621. Source : SQLLocalDB 11.0
Вы можете столкнуться с ошибками, упомянутыми в предыдущих сценариях для экземпляра SQL Server, установленного вручную, или экземпляра LocalDB, установленного приложениями.
Причина
Во время запуска службы SQL Server начинает процесс восстановления базы данных, чтобы обеспечить согласованность базы данных. Часть этого процесса восстановления базы данных включает проверку согласованности базовой файловой системы перед попыткой открыть файлы системной и пользовательской базы данных.
В системах, работающих под управлением Windows 11, некоторые новые устройства хранения и драйверы устройств будут предоставлять размер сектора диска, превышающий поддерживаемый размер сектора размером 4 КБ.
В этом случае SQL Server не сможет запуститься из-за неподдерживаемой файловой системы, так как SQL Server в настоящее время поддерживает хранилище секторов размером 512 байт и 4 КБ.
Вы можете убедиться, что возникла эта конкретная проблема, выполнив команду :
fsutil fsinfo sectorinfo
Например, чтобы проанализировать том E:, выполните следующую команду:
fsutil fsinfo sectorinfo E:
Найдите значения PhysicalBytesPerSectorForAtomicity и PhysicalBytesPerSectorForPerformance , возвращаемые в байтах, и если они отличаются, сохраните наибольшее значение, чтобы определить размер сектора диска. Значение 4096 указывает на размер хранилища сектора 4 КБ.
Кроме того, обратите внимание на политику поддержки Windows для файловой системы и размера сектора хранилища. Дополнительные сведения см. в статье Политика поддержки Майкрософт для 4 КБ секторных жестких дисков в Windows .
Не существует выпущенной версии SQL Server, совместимой с размерами секторов более 4 КБ. Дополнительные сведения см. в разделе Границы поддержки размера сектора жесткого диска в SQL Server статье.
Решения
Корпорация Майкрософт в настоящее время изучает эту проблему.
Рассмотрите одно из следующих решений.
- При наличии нескольких дисков в этой системе можно указать другое расположение для файлов базы данных после завершения установки SQL Server. Убедитесь, что диск отражает поддерживаемый размер сектора при запросе fsutil команд. SQL Server в настоящее время поддерживает размер хранилища секторов 512 байт и 4096 байт.
- Вы можете добавить раздел реестра, что приведет к поведению Windows 11 и более поздних версий, аналогичных Windows 10. Это приведет к эмуляции размера сектора в 4 КБ. Чтобы добавить ForcedPhysicalSectorSizeInBytes раздел реестра, используйте редактор реестра или выполните команды, как описано в разделе PowerShell от имени администратора . Чтобы это изменение вступило в силу, необходимо перезагрузить устройство после добавления раздела реестра.
Важно! В этом разделе содержатся инструкции по изменению реестра Windows. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его.
Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения о резервном копировании и восстановлении реестра см. в статье Резервное копирование и восстановление реестра в Windows .
- Перейдите по адресу ComputerHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesstornvmeParametersDevice .
- В меню Правка наведите указатель мыши на пункт Создать, а затем выберите Многострочного значения. Назовите его ForcedPhysicalSectorSizeInBytes .
- Измените новое значение, введите . * 4095 Нажмите кнопку ОК и закройте редактор реестра.
Командная строка от имени администратора
REG ADD «HKLMSYSTEMCurrentControlSetServicesstornvmeParametersDevice» /v «ForcedPhysicalSectorSizeInBytes» /t REG_MULTI_SZ /d «* 4095» /f
REG QUERY «HKLMSYSTEMCurrentControlSetServicesstornvmeParametersDevice» /v «ForcedPhysicalSectorSizeInBytes»
PowerShell в качестве администратора
New-ItemProperty -Path «HKLM:SYSTEMCurrentControlSetServicesstornvmeParametersDevice» -Name «ForcedPhysicalSectorSizeInBytes» -PropertyType MultiString -Force -Value «* 4095»
Get-ItemProperty -Path «HKLM:SYSTEMCurrentControlSetServicesstornvmeParametersDevice» -Name «ForcedPhysicalSectorSizeInBytes»
Дополнительные сведения
Windows 11 собственные драйверы NVMe были обновлены, чтобы включить фактический размер сектора, сообщаемый непосредственно устройствами хранения NVMe. Это было сделано вместо того, чтобы полагаться на сведения, эмулированные из драйверов файловой системы.
Драйверы Windows 10 не сообщают размер исходного сектора физического хранилища.
Улучшенные драйверы Windows 11 игнорируют эмуляцию, которую используют распространенные устройства хранения NVMe. Например, fsutil отображает размер сектора 8 КБ или 16 КБ вместо эмуляции требуемого размера сектора в 4 КБ, требуемого Для Windows.
В следующей таблице приведено сравнение размеров секторов, сообщаемых операционными системами. В этом примере показаны различия между Windows 10 и Windows 11, использующими одно и то же запоминающее устройство. Для значений PhysicalBytesPerSectorForAtomicity и PhysicalBytesPerSectorForPerformance Windows 10 отображает 4 КБ, а Windows 11 — 16 КБ.
Пример выходных данных fsutil fsinfo sectorinfo
LogicalBytesPerSector : 512 | LogicalBytesPerSector : 512 |
PhysicalBytesPerSectorForAtomicity : 4096 | PhysicalBytesPerSectorForAtomicity : 16384 |
PhysicalBytesPerSectorForPerformance : 4096 | PhysicalBytesPerSectorForPerformance : 16384 |
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096 | FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096 |
Device Alignment : Aligned (0x000) | Device Alignment : Aligned (0x000) |
Partition alignment on device : Aligned (0x000) | Partition alignment on device : Aligned (0x000) |
No Seek Penalty | No Seek Penalty |
Trim Supported | Trim Supported |
Not DAX capable | Not DAX capable |
Not Thinly-Provisioned | Not Thinly-Provisioned |
См. также
- Размер сектора жесткого диска поддерживает границы в SQL Server
- Типы хранилища SQL Server 2019 для файлов данных
- KB3009974 — ИСПРАВЛЕНИЕ. Медленное выполнение синхронизации при наличии разных размеров секторов для основных и дополнительных файлов журналов реплика в средах группы доступности SQL Server и logshipping
- LocalDB SQL Server
Обратная связь
Были ли сведения на этой странице полезными?
Источник: learn.microsoft.com
Клонируем GPT-диск с 512B-сектором на диск с 4K-сектором в Linux. Подводные камни с EFI, NTFS и LVM
Для современного компьютера диск с 4К сектором выглядит предпочтительнее, чем с олдскульным 512B. Так как почти все современные ФС имеют размер кластера по-умолчанию 4KiB или больше. Поэтому использование 512B сектора несколько снижает производительность, а также увеличивает коэффициент умножения записи (Write Amplication) у SSD, что уменьшает ресурс.
Более того, сложно найти современные диски более 4ТБ с сектором 512N. Если диск и рапортует сектор в 512 байт, то, как правило, это 512E — эмулируемый, который используется в основном для совместимости со старыми контроллерами. А в реальности на физическом уровне используется 4К или даже больше (больше в основном у SSD).
Поэтому при покупке нового диска я выбрал диск с сектором 4КiB. И передо мной встала задача клонирования старого диска с 512B сектором (GPT) на новый c сектором 4KiB. Я хотел сохранить установленные Linux, Windows 10, Windows 7 и тома LVM, чтобы не заниматься переустановками ОС. В процессе чего всплыло несколько подводных камней.
Начну с того, что всем советую загрузочные диски (как и прочие, которые >= 2ТБ) делать в разметке GPT. Ибо это очень удобно.
Для GPT-дисков уже не нужна магия хитрых загрузчиков, которые записываются в MBR и многоступенчатым образом загружают вначале себя, а потом и операционную систему.
Достаточно записать загрузчик в специальный EFI-раздел, указать в биосе, что мы хотим загружать именно этот загрузчик и всё. Если биос неудобный или с усеченным функционалом, то я использую программу Hasleo EasyUEFI.
Итак, вернёмся к моей задаче. У меня на диске стоят в мультизагрузке :
- Calculate Linux (btrfs)
- Windows 10 LTSC (ntfs)
- Windows 7 (ntfs)
1. Клонирование
▍ 1.1. Отмонтируем смонтированные файловые системы
Список смонтированных файловых систем проще всего посмотреть командой df .
Отмонтируем (по имени раздела или конечной папки):
umount /dev/nvme0n1p1 umount /dev/nvme0n1p2 umount /mnt/storage .
▍ 1.2. Отключаем активные Volume Groups в LVM
vgchange -a n vg_name
Иначе это может привести к непредсказуемым последствиям, так как ядро может запутаться — будет две одинаковые Volume Groups и на какую-то из них ему нужно писать данные.
Классические способы ( dd , cat , pv ) прекрасно подходят для клонирования LVM-разделов, если диски имеют одинаковый размер сектора. Но в моём случае после клонирования ими LVM-раздел не запустился. Оказалось, что в него всё-таки жёстко вшит размер сектора. Ниже я расскажу, как это обошёл. vgchange делать не пришлось.
▍ 1.3. Клонирование стандартными утилитами
Вначале я просто склонировал один диск на другой.
Классический способ это:
dd if=/dev/nvme0n1 of=/dev/nvme1n1 bs=16M status=progress
Хотя, лично я предпочитаю вот такой:
pv < /dev/nvme0n1 >/dev/nvme1n1
Программа pv показывает полосу копирования, текущую скорость, ожидаемое время и использует/подбирает размер блока для более быстрого копирования.
Если на системе нет ни pv , ни dd то можно использовать cat :
cat < /dev/nvme0n1 >/dev/nvme1n1
В этом случае тоже будет всё скопировано быстро, то без всяких плюшек типа полосы копирования. Некоторые админы шаманского типа считают, что cat — самая оптимизированная прога для копирования потоков данных и поэтому делают так:
cat < /dev/nvme0n1 | pv >/dev/nvme1n1
cat < /dev/sda | pv | cat >/dev/sdb
Сочетают оптимизированность cat и плюшки pv . По моим прикидкам достаточно pv . Я не смог увидеть какого-то существенного выигрыша.
Также можно клонировать разделы по отдельности. В конечном итоге мне так и пришлось сделать, так как всплыло несколько проблем (о них ниже).
Вышеперечисленные способы клонирование, естественно, работают когда источник (source) по размеру меньше или равен назначению (target).
Вообще во многих случаях клонировать удобно используя флэшку с Clonezilla. Но, как выяснилось, она не может корректно отработать случай с клонированием с 512B диска на 4КiB-диск. Хотя в остальном Clonezilla хороша. Она умеет клонировать только занятые сектора, что существенно экономит время.
▍ 1.4. Таблица разделов
Из-за того, что 4К-сектор больше в 8 раз, чем 512B потребуется после клонирования ещё изменить таблицу разделов. Так как разделы задаются в секторах. Это можно сделать вручную пораздельно с помощью gdisk , а можно использовать sfdisk .
В таблице которую показывает gdisk (внутренняя команда p ) можно увидеть что-то подобное:
Command (? for help): p Disk /dev/disk1: 15634432 sectors, 7.5 GiB Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): 70D5FAFF-4AC9-42C6-A552-0603CE032B8D Partition table holds up to 128 entries First usable sector is 34, last usable sector is 15634398 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 8390655 4.0 GiB 0700 Shared (FAT) data 2 8390656 12584959 2.0 GiB 8300 Linux ext3fs data 3 12584960 15634398 1.5 GiB 2700 Linu