Как правило, администратор задается вопросом конвертации vmdk диска из Thick (толстого) в Thin (тонкий) в VMware ESXi при обнаружении низкой производительности виртуальных дисков при записи файлов. По умолчанию при создании нового виртуального диска используется формат диска Thick Provision Lazy Zeroed, что потенциально может отразиться на производительности будущей дисковой подсистемы. В этом случае лучше использовать формат диска Thin Provision или Thick Provision Eager Zeroed (при этом все пространство на диске заполняется нулями, что замедляет процесс создания диска, но увеличивает скорость работы с ним в будущем)
Примечание. В кластерных сценариях обеспечить общий доступ с разных виртуальных машин к одному общему vmdk диску можно только для дисков типа Thick provision eager zeroed.
Есть два простейших способа конверсии дисков Thick Provisioned в Thin
- с помощью функции Storage vMotion в VMware vSphere
- с помощью интерфейса командной строки CLI (единственный способ преобразовывать диск при использовании отдельно стоящего хоста VMware ESXi)
- Изменение формата диска из Thick в Thin с помощью Storage VMotion
- Как изменить формат vmdk диска с помощью ESXi CLI
Содержание:
Изменение формата диска из Thick в Thin с помощью Storage VMotion
С помощью функции Storage vMotion в VMware vSphere, вы можете переместить любую виртуальную машину вместе с ее дисками в другое VMFS хранилище (другой LUN или NFS хранилище) без прерывания работы служб и приложений. Во время переноса дисков ВМ между хранилищами вы можете изменить тип виртуальных дисков.
Чтобы узнать текущий тип диска виртуальной машины, откройте ее свойства и проверьте значение поля Type. В нашем примере используется диск типа Thick provision lazy zeroed.
Чтобы изменить тип диска, переместите файлы виртуальной машины с помощью vMotion в другой датастор.
Совет. Если у вас только одно VMFS хранилище, вы можете временно создать дополнительное хранилище на любом сервере Windows и подключить его к ESXi серверу через NFS.
Откройте у виртуальной машины меню Action и выберите опцию Migrate.
Выберите тип миграции Change storage only.
В качестве формата диска виртуальной машины укажите Thin Provision и затем выберите одно из доступных VMFS/NFS хранилищ, на которое вы хотите перенести виртуальную машину. Нажмите Next.
Подождите, пока файлы виртуальной машины будут перемещены на новое хранилище.
Затем проверьте, что тип диска изменен на Thin provision.
Как изменить формат vmdk диска с помощью ESXi CLI
Метод изменения типа диска с использованием CLI заключается в копировании текущего содержимого vmdk файла в новый тонкий (thin) диск и последующего удаления старого толстого (thick) диска.
В первую очередь выключите виртуальную машину, тип диска которой нужно изменить. Чтобы подключится к хосту ESXi по SSH, необходимо включить службу SSH в настройках ESXi и разрешить входящие подключения к порту 22 TCP (Manage->Settings -> Security Profile).
Подключитесь к хосту ESXi под учеткой root с помощью SSH клиента (того же Putty) и перейдите в каталог vmfs/volumes:
cd vmfs/volumes
Выведите список доступных хранилищ:
ls –lh
Затем перейдите в каталог, в котором хранятся файлы вашей виртуальной машины:
Выведите содержимое каталога:
ls
В данном примере нас интересует файл w10rtm-test.vmdk. Чтобы скопировать текущий файл и сконвертировать его из формата Thick в Thin, выполнив команду:
vmkfstools -i w10rtm-test.vmdk -d thin w10rtm-test-thin.vmdk
Важно! На VMFS хранилище должно быть достаточно свободного места для создания копии файла!
После окончания копирования нужно удалить исходный файл:
rm w10rtm-test.vmdk
И переименовать новый файл в оригинальное имя:
mv w10rtm-test-thin.vmdk w10rtm-test.vmdk
Теперь с помощью клиента vSphere Client или веб интерфейса vSphere Web client откройте свойства виртуальной машины и удалите старый диск из настроек виртуальной машиныopen VM (здесь важно выбрать именно Remove from virtual machine !!!). Затем добавьте новый диск: Add -> Hard Disk -> Use an existing virtual disk -> выберите файл w10rtm-test.vmdk ->Next->Finish.
Теперь можно включить вашу виртуальную машину.
Разберем как конвертировать виртуальный диск из Thick Provision Lazy Zeroed (толстый) в Thin Provision (тонкий) на VMware ESXi 5.5.
Конвертация через командную строку (SSH)
Переходим в папку:
Выводим список имеющихся дисков:
Видим что есть 3 диска:
- datastore1
- datastore2
- datastore3
В моем случае виртуальная машина и подключенный к ней диск находится на datastore3. Заходим на datastore3:
Смотрим содержимое каталога:
Имя моей виртуальной машины srv-test-migrat:
Заходим в каталог виртуальной машины:
Смотрим содержимое каталога:
Интересующий нас файл srv-test-migrate.vmdk, его мы и будет конвертировать из Thick в Thin диск.
Конвертируем диск srv-test-migrate.vmdk:
|
vmkfstools —i srv—test—migrate.vmdk —d thin srv—test—migrate—thin.vmdk |
Теперь удалим srv-test-migrate.vmdk (толстый диск):
Переименуем полученный в результате конвертации srv-test-migrate-thin.vmdk тонкий диск:
|
mv srv—test—migrate—thin.vmdk srv—test—migrate.vmdk |
Конвертация через vSphere
В vSphere или в vCenter на виртуальной машине у которой мы конвертировали диск вызываем редактирование настроек ее (Edit Settings…):
Видим что подключенный жесткий диск отображается все еще как Thick Provision Lazy Zeroed (толстый). Удаляем его (Remove):
Removal Options выбираем Remove from virtual machine нажимаем ОК:
Снова вызываем свойства виртуальной машины (Edit Settings…) и нажимаем кнопку Add. Выбираем Hard Disk и жмем Next:
Выбираем пункт Use an existing virtual disk и жмем Next:
В пункте Disk File Path нажимаем Browse…, перехожу в каталог где находится виртуальная и выбираю srv-test-migrat.vmdk, жмем ОК, Next, Next и Finish:
Добавился жесткий диск и уже видим что он Thin Provision. Чтобы применить добавление жмем ОК:
Вот так можно сменили тип диск с толстого на тонкий.
Конвертация через vCenter
Если у вас развернут vCenter, то сменить тип диска можно путем миграции его с последующей сменой типа диска. Выше мы рассмотрели как перевести из Thick в Thin, а теперь для примера мы переведем обратно из Thin в Thick посредством миграции диска.
ПКМ на виртуальной машине и выбираем Migrate…
Нас интересует Change datastore, выбираем этот пункт и жмем Next
[note]Пояснения по пунктам:
Change host — перенести виртуальную машину на другой хост ESXi
Change datastore — перенести данные виртуальной машины на другой диск в ESXi
Change both host and datastore — перенести виртуальную машину на другой хост ESXi и ее данные на другой диск[/note]
Нажимаем Advanced >> , чтобы перейти в расширенный режим миграции.
В столбце Datastore нажимаем на [ Current Location ] Browse…
Выбираем на какой диск будем мигрировать, жмем ОК
Теперь в столбце Disk format выбираем какой формат диск будет после миграции. Раз уж мы делаем для примера из Thin в Thick, то выбираю Thick Provision Lazy Zeroed и жму Next
[tip]Информация: таким способом можно из Thick (толстый) сделать Thin (тонкий)[/tip]
Жмем Finish
В строке состояния ESXi появится процесс миграции
По окончании миграции проверим получилось ли у нас изменить тип диска с Thin на Thick. ПКМ на виртуальной машине и Edit Settings… Видим что диск наш стал Thick Provision Lazy Zeroed и переместился из datastore3 на datastore2. Все получилось
Ну вот такими двумя способами можно легко сменить тип диска на виртуальной машине.
Понравилась или оказалась полезной статья, поблагодари автора
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА
Загрузка…
Недавно я столкнулся с ситуацией, когда на виртуальном диске в виртуальной машине vSphere начало заканчиваться место, а типичная операция по расширению дискового пространства оказалась невозможной. В моем случае это было связано с интерфейсом подключения диска — IDE.
Статьи, которые можно найти в этой связи в Интернет, например:
VMware Knowledge Base
Аналог, с картинками
к сожалению неполны.
Следование данным статьям приводит к неработоспособности виртуальной машины. После более детальных изысканий, был найден работающий путь, дополняющий вышеуказанные статьи. Для того, чтобы статья предоставляла цельное решение проблемы, здесь будет изложен переработанный и дополненный способ конвертации.
Отступления
1. Чтобы не загромождать статью, я буду везде опускать слово «виртуальный», которое будет применяться к диску и к машине.
2. Я буду использовать специфическую терминологию/названия, типичные для vSphere.
3. Невозможность расширения диска может быть вызвана несколькими причинами: наличие снапшотов данного диска (при этом в менеджере снапшотов они могут быть не видны), отсутствие места для расширения, включенное питание машины и т.д. Здесь описывается ситуация, когда снапшотов нет, место есть, питание выключено, но диск IDE.
4. Существует теоретическая/(не проверял) возможность конвертации диска с помощью VMware Converter. Я ее не использовал по двум причинам: это достаточно «тяжелый» софт и я встречал упоминания о невозможности загрузки машины после конвертации
5. Операции производились на vSphere + ESXi v4.1U2. Я не гарантирую работоспособности метода на других версиях (но в принципе должно работать, ничего сверхспецифичного).
6. Внутри машины установлена
неонка
WinXP 32bit, и часть действий на это рассчитана, если у вас стоит другая ОС имейте это в виду.
7. Формат диска Thick
8. У вас есть свежий бэкап данной машины (в процессе экспериментов я восстанавливался где-то раз 5).
Начали
Итак, наша машина выключена, у нас открыт vSphere Client.
Заходим в свойства машины, и добавляем SCSI Device. В качестве скази девайса у меня был сидиром, у которого рекомендуется сразу же поменять Virtual Device Node с SCSI(0:0) на SCSI(0:1), т.к. впоследствии на SCSI(0:0) мы повесим наш сконвертированный диск.
Скази девайс добавляется вместе со скази контроллером (SCSI Controller), у которого необходимо сменить тип с BusLogic Parallel на LSI Logic Parallel.
Сохраняем настройки и включаем машину.
Ставим драйвер для контроллера, который можно найти на сайте производителя: LSI Support.
Ищем драйвер для своей ОС, для LSI20320-R
После установки драйвера, хорошо бы проверить, что контроллер и скази девайс появились в оборудовании машины и установлены корректно.
Выключаем виртуальную машину.
В вышеприведенных ссылках, рекомендуют заменить одну строчку в файле %vm-name%.vmdk (ddb.adapterType) чтобы в дальнейшем все заработало. У меня это не сработало (машина не загружается вообще — не виден даже MBR).
После определенных изысканий была найдена проблема — разная геометрия дисков IDE и SCSI.
Таким образом необходимо выяснить геометрию SCSI диска с точно таким же размером как наш IDE диск.
Это можно сделать разными способами, лично я использовал VMware vSphere PowerCLI (см. подвал).
Итак, подключаемся к ESX(i) хосту и выясняем размер диска машины:
PowerCLI > (Get-HardDisk -VM %vm-name%).CapacityKB 10485760
Т.о. мы получили размер в килобайтах. Теперь выясним название скази контроллера нашей машины (это понадобится для создания скази диска):
PowerCLI > (Get-ScsiController -VM %vm-name%).Name SCSI controller 0
Создаем скази диск, аналогичного размера:
PowerCLI > New-HardDisk -Datastore datastoreXX -StorageFormat Thick -CapacityKB 10485760 -Controller "SCSI controller 0" %vm-name%
При создании, будет выведена табличка, в которой среди прочего будет прописан путь к созданному диску, а также его название.
Немного теории:
В VMware виртуальный диск в простейшем случае состоит из двух файлов:
%vm-name%.vmdk — файл описания диска
%vm-name%-flat.vmdk — собственно сам диск (содержимое)
Кстати, Datastore Browser представляет их в виде одного файла, но если этот файл скачать, например, на локальную машину, то фактически получим два файла, как и должно быть (в теории может быть и больше, если использовался split).
На данный момент нас интересуют файлы описания старого IDE диска и новосозданного SCSI диска. Я пользовался SSH и WinSCP для их извлечения.
Для моего размера диска увидим следующее:
IDE
# Extent description RW 20971520 VMFS "%vm-name%-flat.vmdk" # The Disk Data Base #DDB ddb.geometry.cylinders = "16383" ddb.geometry.heads = "16" ddb.geometry.sectors = "63" ddb.adapterType = "ide"
SCSI
# Extent description RW 20971520 VMFS "%vm-name%_1-flat.vmdk" # The Disk Data Base #DDB ddb.geometry.cylinders = "1305" ddb.geometry.heads = "255" ddb.geometry.sectors = "63" ddb.adapterType = "lsilogic"
Сначала обратим внимание на вторую строчку, на цифры после RW, это размер дисков (в моем случае в 512b блоках). Числа должны совпадать, если они не совпадают, нет смысла читать дальше.
Далее сразу же бросается в глаза различие цилиндров и головок. Ну и тип адаптера.
Теперь редактируем файл описания старого IDE диска, меняем соответственно число цилиндров, головок и тип адаптера. Не рекомендую просто переписывать файл описания, таковым от нового скази диска, т.к. информации у старого IDE диска в этом файле больше.
Все что нам нужно было от тестового скази диска мы получили, поэтому его можно удалить (например с помощью Remove-HardDisk).
Теперь заходим в свойства виртуальной машины и удаляем IDE диск из состава машины.
будьте предельно внимательны, диск удаляем только из виртуальной машины (Remove from virtual machine), но не удаляем файлы с диска!
Сохраняем изменения, и опять заходим в свойства виртуальной машины. Добавляем жесткий диск, выбираем пункт «Использование существующего диска» (Reuse existing virtual disk) и указываем на файл с нашим диском.
В дополнительных свойствах, проверяем что диск встал на SCSI(0:0).
В данный момент можно удалить скази сидиром, если он не нужен, и проверить настройки IDE сидирома (если он есть). IDE сидиром необходимо установить на канал IDE(0:0) или IDE(1:0) (мастером), иначе машина откажется запускаться.
В целом это все. Можно еще зайти в БИОС виртуальной машины, проверить порядок загрузки.
Виртуальную машину можно запустить, при первой загрузке будет установлен драйвер на диск.
Кстати, теперь можно и размер диска поменять.
Подвал
VMware Knowledge Base: IDE to SCSI
LSI Support
VMware vSphere PowerCLI
Как изменить тип (скорость) дисков виртуальной машины?
Для изменения типа дисков, используемого виртуальной машиной:
1. В Панели управления облаком выберите «Virtual Machines» и на нужной виртуальной машине нажмите «DETAILS».
2. В свойствах виртуальной машины, на вкладке «General» найдите пункт «Storage Policy». В выпадающем меню «Storage Policy» Вы можете выбрать необходимый тип дисков.
В данный момент существует 2 типа дисков:
— vcd-type-med — что соответствует SAS дискам.
— vcd-type-ssd — что соответствует SSD дискам.
Возможна такая ситуация, что доступен только один тип дисков, например, можно выбрать только «vcd-type-med». В таком случае обратитесь в техническую поддержку и она подключит дополнительные хранилища другого типа к Вашему виртуальному дата-центру.
После нажатия «ОК» тип дисков изменится и начнется миграция виртуальной машины в новое хранилище, при этом на работоспособности машины миграция не отразится. Выключать или приостанавливать машину нет необходимости, т.к. миграция происходит в «живом режиме».
3. Если в Вашей машине используется несколько дисков, то можно разместить эти диски на хранилищах разного типа.
Например, если машина является сервером баз данных, возможно, Вы захотите разместить диск с ОС на дисках SAS, а диск с БД на дисках SSD.
Для этого нажмите на нужной виртуальной машине на кнопку «DETAILS», далее на вкладке «Hardware» напротив нужного диска выбрите его тип.
Возможна такая ситуация, что доступен только один тип дисков, например, можно выбрать только «vcd-type-med». В таком случае обратитесь в техническую поддержку и она подключит дополнительные хранилища другого типа к Вашему виртуальному дата-центру.
После нажатия «ОК» тип дисков изменится и начнется миграция виртуальной машины в новое хранилище, при этом на работоспособности машины миграция не отразится. Выключать или приостанавливать машину нет необходимости, т.к. миграция происходит в «живом режиме».
Ещё не пробовали услугу «Облачный хостинг» от Cloud4Y?
Отправьте заявку сейчас и получите 10-ти дневный бесплатный доступ.
При создании новой виртуальной машины в гипервизоре VMware ESXi можно выбрать следующие варианты организации жесткого диска:
Thin Provision -«тонкий» диск, изначально не занимает на файловой системе VMFS места, разрастается до максимального размера по мере накопления информации.
Thick Provision Lazy Zeroed — «толстый» диск, резервирует свое максимальное пространство на VMFS сразу же при создании.
Thick Provision Eager Zeroed — тоже самое что и Thick Provision Lazy Zeroed, только в момент создания все пространство заполняется нулями, это замедляет процесс инсталляции но повышает производительность диска в эксплуатации.
Способы конвертации диска через GUI vSphere Client:
1. Толстый в тонкий(THICK to THIN) — при наличии «Storage VMotion», во время миграции на другой datastore можно в окне мастера поменять формат виртуального диска. Т.е. мигрируем туда и обратно. Либо, при отсутствии «Storage VMotion», клонируем виртуальную машину под другим именем и с изменением формата диска.
2. Тонкий в толстый(THIN to THICK) — также подойдет первый способ, но кроме него можно кликнуть правой кнопкой в окне «Datastore Browser» на соответствующем файле формата «.vmdk«, и выбрать в контекстном меню команду «Inflate«.
Способы конвертации диска используя консоль ESXi сервера или подключение по SSH:
1. Толстый в тонкий(THICK to THIN) — используя консоль, переходим в каталог с файлами виртуальной машины и выполняем команду:
vmkfstools -K vm1.vmdk (вместо -K можно использовать —punchzero)
В этом случае файл виртуального диска называется vm1.vmdk. Чтобы не ошибиться с выбором файла, его имя нужно уточнить в свойствах виртуальной машины(«Edit Settings»), закладка «Hardware». Кликните на жесткий диск, и в поле «Disk File» будет указан путь к необходимому файлу «.vmdk«.
2. Тонкий в толстый(THIN to THICK) — также как и в первом пункте, только используя другой параметр:
vmkfstools -j vm1.vmdk (вместо -j можно использовать —inflatedisk)
Нужно помнить, что при копировании виртуальной машины на файловую систему, отличную от VMFS, любой диск будет преобразован в толстый и займет свой максимальный объём.
Обновлено 15.06.2017
Всем привет, сегодня хочу вас научить делать расширение и конвертирование виртуальных жестких дисков IDE в SCSI. Для чего, тут все просто, появляется возможность его ускорить и расширять на лету, но обо всем по порядку. Вообще старайтесь их не создавать, а использовать более современные, это как земля и небо, у Hyper-v первого поколения, такая же проблема, решенная уже во второй и третьей версии.
Описание задачи
У вас есть виртуальная машина на гипервизоре VMware ESXI 5.5. Вам поступает задача расширить виртуальный диск, вроде все тривиально, но у вас не получается, так как это поле просто не активное. А все дело в том, что один идиот, который пренебрег помощью администратора по виртуализации, сам все создал, и создал так, что у него диски подключены по IDE технологии, устаревшей и медленной, но как бы пофиг с этим, есть огромное но
диски IDE нельзя расширить штатными средствами VMware
Что делать, конечно же конвертируем его в SCSI.
Конвертируем IDE в SCSI
Для конвертации IDE в SCSI, открываем свойства виртуальной машины, она должна быть выключена, и видим, что есть IDE диск 1. Размер у меня 100 гб и как видите расширить нельзя, не активна опция и виртуалка выключена.
Переходим к вашему SCSI controller и жмем у него Change Type.
Тут нам нужно будет выбрать тип SCSI controller VMware Paravirtual
- сама VMware рекомендует использовать VMware Paravirtual (PVSCSI) SCSI контроллер для гостевых операционных систем, поскольку он предоставляет лучшую производительность при низких накладных расходах
- Если гостевая система семейства Windows, убедитесь в установленных VMware tools, так как в их составе находятся драйвера Paravirtual адаптера, или в присутствии драйверов Bus logic или LSI logic типов адаптеров
Контроллер будет пере заменен
Теперь нам нужно будет создать временный виртуальный жесткий диск
Create new virtual disk
Задаем размер 25 гб, тип оставляем Thick Provision Lazy Zeroed, более подробно о типах виртуальных дисков ESXI читайте по ссылке.
Выбираем SCSI контроллер.
Все диск 25 гб добавлен
Жмем ок и включаем виртуальную машину, система накатит нужные драйвера подождите пока появятся все устройства.
По сути вы должны увидеть новый диск вместе с остальными, в моем случае гостевая операционная система это Ubuntu, то выполним fdisk -l и посмотрим список доступных дисков. Как видите наш это sdc.
Теперь выключаем виртуалку и полностью удаляем новый созданный диск > Remove from virtual machine and delete files from disk.
Теперь нам нужно кое, что поправить в ide диске, для этого нам нужно подключиться по ssh к esxi хосту. С помощью команды cd переходим в расположение виртуальной машины и выполняем редактирование командой «vi имя_виртуалки.vmdk» (она нам и поможет сделать конвертацию ide в scsi).
Находим строку ddb.adapterType = «ide» и меняем на ddb.adapterType = «buslogic» или ddb.adapterType = «lsilogic», в зависимости от типа выбранного адаптера SCSI (для перехода в режим редактирования нажмите «i«, для выхода из режима — «Esc«). Сохраняемся и выходим(«:wq«).
У меня получилось вот так
Теперь нам нужно данный IDE диск отключить, для этого останавливаем вашу виртуалку и удаляем его из конфига
смотрите не перепутайте, выбрать нужно именно Remove from virtual machine
Все теперь осталось добавить сконвертированный SCSI диск, для этого жмем Add > Hard Disk
Выбираем Use an existing virtual disk > использовать существующий диск
нажимаем browse.
не перепутайте и выбирайте SCSI, не зря же мы тут все это затеи ли 🙂
Все видим виртуальный жесткий диск SCSI добавился.
Теперь выберем в типе SCSI, тот тип что вы указали ранее у меня это LSI Logic SAS
Если тот IDE диск который мы переделывали в SCSI был загрузочным, то убедитесь что у него в Virtual Device Node стоит SCSI (0:0) иначе не загрузится.
И проверьте, чтобы у IDE Cd/DVD rom стоял тоже IDE (0:0)
Все включаем вашу машинку и проверяем все устройства и что все работает.
Еще немного о Windows платформе
На Windows Server 2008 R2, когда мне нужно было так же поменять системный диск, у меня были синие экраны, пока я из рабочей виртуалки со SCSI диском не выгрузил ветви реестра
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLSI_SAS
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLSI_SCSI
И не импортировал их на тачку с IDE диском, далее по инструкции вверху.




































































