Это команда virt-alignment-scan, которую можно запустить в провайдере бесплатного хостинга OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
virt-alignment-scan - Проверить выравнивание разделов виртуальной машины
СИНТАКСИС
виртуальное выравнивание-сканирование [--options] -d доменное имя
виртуальное выравнивание-сканирование [--options] -a disk.img [-a disk.img ...]
виртуальное выравнивание-сканирование [--options]
ОПИСАНИЕ
Когда старые операционные системы устанавливаются сами, инструменты создания разделов размещают разделы
в секторе, несовместимом с базовым хранилищем (обычно первый раздел начинается на
сектор 63). Неправильно выровненные разделы могут привести к тому, что операционная система будет выполнять больше операций ввода-вывода, чем
должно быть необходимо.
Инструмент virt-alignment-scan проверяет выравнивание разделов в виртуальных машинах и
образы дисков и предупреждает о проблемах с выравниванием.
В настоящее время нет инструмента virt для исправления проблем с выравниванием. Вы можете только переустановить
гостевая операционная система. Следующий документ NetApp резюмирует проблему и возможные
решения: http://media.netapp.com/documents/tr-3747.pdf
ВЫВОД
Чтобы запустить этот инструмент непосредственно на образе диска, используйте -a опции:
$ virt-alignment-scan -a winxp.img
/ dev / sda1 32256 512 плохо (выравнивание <4K)
$ virt-alignment-scan -a Fedora16.img
/ dev / sda1 1048576 1024 КБ нормально
/ dev / sda2 2097152 2048 КБ нормально
/ dev / sda3 526385152 2048 КБ нормально
Чтобы запустить инструмент на гостевой машине, известной libvirt, используйте команду -d вариант и, возможно, -c опции:
# virt-alignment-scan -d RHEL5
/ dev / sda1 32256 512 плохо (выравнивание <4K)
/ dev / sda2 106928640 512 плохо (выравнивание <4K)
$ virt-alignment-scan -c qemu: /// system -d Win7TwoDisks
/ dev / sda1 1048576 1024 КБ нормально
/ dev / sda2 105906176 1024 КБ нормально
/ dev / sdb1 65536 64 КБ нормально
Запустите virt-alignment-scan без каких-либо -a or -d опции для сканирования всех доменов libvirt.
# virt-alignment-scan
F16x64: / dev / sda1 1048576 1024K нормально
F16x64: / dev / sda2 2097152 2048K нормально
F16x64: / dev / sda3 526385152 2048K нормально
Вывод состоит из 4 или более столбцов, разделенных пробелами. Только первые 4 столбца
важны, если вы хотите проанализировать это из программы. Столбцы:
1 воротник
Имя устройства и раздела (например, / Dev / sda1 означает первый раздел на первом
блочное устройство).
При перечислении всех доменов libvirt (нет -a or -d опция задана) этот столбец имеет префикс
имя libvirt или UUID (если --uuid дано). например: «WinXP: / dev / sda1»
2 воротник
начало раздела в байтах
3 воротник
выравнивание в байтах или килобайтах (например, 512 или «4K»)
4 воротник
"хорошо", если выравнивание лучше всего для производительности, или "плохо", если выравнивание может вызвать
Проблемы с производительностью
столбцы 5+
необязательное объяснение в виде произвольного текста.
Код выхода из программы меняется в зависимости от того, были ли плохо выровнены разделы
нашел. См. «СТАТУС ВЫХОДА» ниже.
Если вам просто нужен код выхода без вывода, используйте -q опцию.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
--Помогите
Показать краткую справку.
-a файл
--Добавить файл
Добавить файл это должен быть образ диска с виртуальной машины.
Формат образа диска определяется автоматически. Чтобы преодолеть это и заставить
конкретный формат использовать --format = .. опцию.
-a URI
--Добавить URI
Добавьте удаленный диск. См. «ДОБАВЛЕНИЕ УДАЛЕННОГО ХРАНИЛИЩА» в рыба-гость(1).
-c URI
--соединять URI
Если вы используете libvirt, подключитесь к указанному URI. Если опущено, то подключаемся к
гипервизор libvirt по умолчанию.
Если вы укажете гостевые блочные устройства напрямую (-a), то libvirt вообще не используется.
-d гость
--домен гость
Добавьте все диски из указанного гостя libvirt. UUID домена можно использовать вместо
имена.
--format = raw | qcow2 | ..
--формат
По умолчанию для -a опция - автоматическое определение формата образа диска. С использованием
это заставляет формат диска для -a параметры, которые следуют в командной строке. С использованием
--формат без аргумента переключается обратно на автоопределение для последующего -a настройки.
Например:
виртуальное выравнивание-сканирование --format = raw -a disk.img
форсирует необработанный формат (без автоопределения) для диск.img.
виртуальное выравнивание-сканирование --format = raw -a disk.img --format -a another.img
форсирует необработанный формат (без автоопределения) для диск.img и возвращается к автоопределению для
другой.имг.
Если у вас есть ненадежные образы гостевых дисков в необработанном формате, вы должны использовать эту опцию, чтобы
укажите формат диска. Это позволяет избежать возможных проблем безопасности с вредоносными
гости (CVE-2010-3851).
-P номер_потоков
Начиная с libguestfs 1.22, virt-alignment-scan является многопоточным и проверяет гостей в
параллельно. По умолчанию количество используемых потоков выбирается в зависимости от количества
свободная память, доступная во время запуска virt-alignment-scan. Вы можете заставить
virt-alignment-scan использовать не более "nr_threads" с помощью -P опцию.
Обратите внимание, что -P 0 означает автоматическое обнаружение, и -P 1 означает использование одного потока.
-q
--тихий
Не производите никакого вывода. Просто установите код выхода (см. «СТАТУС ВЫХОДА» ниже).
--uuid
Печатайте UUID вместо имен. Это полезно для отслеживания гостя, даже если
guest переносится или переименовывается, или когда два гостя имеют одно и то же имя.
Этот параметр применяется только при перечислении всех доменов libvirt (если нет -a or -d кредита
указаны).
-v
--подробный
Включите подробные сообщения для отладки.
-V
--версия
Показать номер версии и выйти.
-x Включите отслеживание вызовов API libguestfs.
Рекомендуемые ВЫРАВНИВАНИЕ
Операционные системы старше Windows 2008 и Linux примерно до 2010 года занимают первый сектор
первого раздела в секторе 63 с размером сектора 512 байт. Это происходит из-за
историческая случайность. Приводы должны сообщать геометрию цилиндра / головки / сектора (CHS) в
BIOS. На современных дисках геометрия совершенно бессмысленна, но бывает, что
сообщаемая геометрия всегда имеет 63 сектора на дорожку. Таким образом, операционная система
помещает первый раздел в начало второй «дорожки» в секторе 63.
Когда гостевая ОС виртуализирована, операционная система хоста и гипервизор могут предпочесть
доступы выровнены с одним из:
· 512 байт
если ОС хоста использует локальное хранилище непосредственно на разделах жесткого диска, а жесткий диск
диск имеет 512 байт физических секторов.
· 4 Кбайт
для локального хранилища на новых жестких дисках с физическими секторами размером 4 Кбайт; для файловой
хранение в файловых системах с размером блока 4 Кбайт; или для некоторых типов сетевых
место хранения.
· 64 Кбайт
для высокопроизводительного сетевого хранилища. Это оптимальный размер блока для некоторых NetApp.
оборудования.
· 1 Мбайт
см. «ВЫРАВНИВАНИЕ РАЗДЕЛА 1 МБ» ниже.
Разделы, которые неправильно выровнены с базовым хранилищем, вызывают дополнительный ввод-вывод. Для
пример:
секта №63
┌───────────────────────────┬ ─ ─ ─ ─
│ гость │
│ блок файловой системы │
─ ┬───────────────────┴───────────────────────────┴── ───┬ ─ ─
│ блок хоста │ блок хоста │
│ │ │
─ ┴──────────────────────────┴─────────────────────── ───┴ ─ ─
В этом примере каждый раз, когда читается гостевой блок 4K, два блока на хосте должны быть
доступ (так что выполняется вдвое больше операций ввода-вывода). Когда записывается гостевой блок 4K, два хоста
блоки должны быть сначала прочитаны, старые и новые данные объединены, а два блока записаны обратно
(4x ввода / вывода).
LINUX ВЕДУЩИЙ BLOCK / БЛОК И Ввода / вывода РАЗМЕР
Новые версии ядра Linux показывают размер физического и логического блока и минимальный размер блока.
и рекомендуемый размер ввода / вывода.
Для типичного потребительского жесткого диска с 512-байтовыми секторами:
$ кошка / системный / блок / sda / очередь / hw_sector_size
512
$ кошка / системный / блок / SDA / очередь / физический_блок_размер
512
$ кошка / системный / блок / sda / очередь / логический_размер_блока
512
$ кошка / системный / блок / SDA / очередь / минимальный_io_size
512
$ кошка / системный / блок / sda / очередь / оптимальный_io_size
0
Для нового потребительского жесткого диска с секторами размером 4 Кбайт:
$ кошка / системный / блок / sda / очередь / hw_sector_size
4096
$ кошка / системный / блок / SDA / очередь / физический_блок_размер
4096
$ кошка / системный / блок / sda / очередь / логический_размер_блока
4096
$ кошка / системный / блок / SDA / очередь / минимальный_io_size
4096
$ кошка / системный / блок / sda / очередь / оптимальный_io_size
0
Для LUN NetApp:
$ cat / системный / блок / SDC / очередь / логический_блок_размер
512
$ cat / sys / block / SDC / очередь / физический_блок_размер
512
$ cat / системный / блок / SDC / очередь / минимальный_io_size
4096
$ cat / системный / блок / SDC / очередь / оптимальный_io_size
65536
NetApp разрешает доступ по 512 байт (но они будут очень неэффективными), предпочитает минимум
Размер ввода-вывода 4K, но оптимальный размер ввода-вывода составляет 64 КБ.
Для получения подробной информации о том, что означают эти числа, см.
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/newstorage-iolimits.html
[Спасибо Мэтту Буту за предоставленные данные с диска 4K. Спасибо Майку Снитцеру за предоставление
Данные NetApp и дополнительная информация.]
1 MB РАЗДЕЛ ВЫРАВНИВАНИЕ
Microsoft выбрала 1 МБ в качестве выравнивания по умолчанию для всех разделов, начиная с Windows.
2008 Server, и Linux последовала за этим.
Предполагая, что в гостевой системе есть 512-байтовые сектора, вы увидите, что первый раздел начинается с
сектор 2048, а последующие разделы (если есть) начнутся с числа, кратного 2048 секторам.
Выравнивание 1 МБ совместимо со всеми текущими требованиями к выравниванию (4K, 64K) и
предоставляет возможности для будущего роста физических размеров блоков.
НАСТРОЙКИ ВЫРАВНИВАНИЕ
виртуальное изменение размера(1) может изменить выравнивание перегородок у некоторых гостей. В настоящее время это
может полностью выровнять все разделы всех гостей Windows, и это исправит загрузчик
где необходимо. Для гостей Linux он может выровнять второй и последующие разделы, поэтому
большинство обращений к ОС, за исключением загрузки, будут согласованы.
Еще один способ исправить проблемы с выравниванием разделов - переустановить гостевую операционную систему.
системы. Если вы устанавливаете операционные системы из шаблонов, убедитесь, что в них указаны правильные
выравнивание разделов тоже.
Для более старых версий Windows следующий документ NetApp содержит полезную информацию:
http://media.netapp.com/documents/tr-3747.pdf
Для Red Hat Enterprise Linux ≤ 5 используйте сценарий Kickstart, содержащий явный% pre
раздел, который создает выровненные разделы с помощью расставался(8). Не используйте "часть" кикстарта.
команда. Документ NetApp выше содержит пример.
ВЫХОД статус
Эта программа возвращает:
· НИКОГДА
успешный выход, все разделы выровнены ≥ 64K для лучшей производительности
· НИКОГДА
ошибка сканирования образа диска или гостя
· НИКОГДА
успешный выход, некоторые разделы имеют выравнивание <64K, что может привести к плохому
производительность на высокопроизводительном сетевом хранилище
· НИКОГДА
успешный выход, некоторые разделы имеют выравнивание <4K, что может привести к плохому
производительность на большинстве гипервизоров
Используйте virt-alignment-scan онлайн с помощью сервисов onworks.net