суббота, 26 июня 2010 г.

default VMFS block size

У файловой системы VMFS есть такая характеристика, как размер блока = 1, 2, 4 или 8 мегабайт.
От размера блока зависит максимальный размер файла на разделе = 256, 512, 1204 или 2048 гигабайт.
Проблемой является следующий момент – если мы промахнулись, и после форматирования с, например, блоком в один мегабайт, нам понадобилось создать для ВМ файл-диск размером гигабайт 300 – у нас это не получится. И единственный способ это исправить – это освободить данный VMFS от виртуалок, удалить, и пересоздать заново с нужным размером блока.
А еще более неприятно бывает тогда, когда данная проблема возникает для хранилища на загрузочном диске ESX 4. Дело в том, что оно создается автоматически, установщиком ESX, и как раз с блоком = 1 МБ.
А удалить его нельзя, потому что на нем лежит файл-диск Service Console.
Так вот, есть способ поправить конфиг установщика так, чтобы указать требуемый вам размер блока:

Инструкция:
1) Берем iso с дистрибутивом ESX, и извлекаем из него файл \isolinux\initrd.img
Под Windows я не смог выполнить дальнейшие шаги, поэтому:
2) копируем этот файл на Linux (я использовал Service Console), например с помощью WinSCP.
3) Допустим, initrd.img у нас лежит в /tmp
тогда
4) Последовательно выполняем
mkdir /tmp/temp
cd /tmp/temp
zcat /tmp/initrd.img | cpio --extract
mv /tmp/initrd.img /tmp/initrd.org
nano /tmp/temp/usr/lib/vmware/weasel/fsset.py
5)  ищем (Ctrl+W) строку
blockSizeMB = 1
меняем размер блока на нужный
сохраняем, выходим (Ctrl+X)
6) Выполняем
find ./ | cpio -H newc -o > /tmp/initrd
gzip /tmp/initrd --suffix .img

7) Заменяем initrd в дистрибутиве на новую версию. Все.
Кстати, это работает даже при использовании файла ответов для установщика, в том числе идущих по умолчанию.
screen

UPD.
А вот в комментариях подсказали другой вариант - http://kb.vmware.com/kb/1012683
Первый вариант удобнее, когда с одного дистрибутива надо на многих инсталляциях недефолтный размер блока.
Для разового изменения проще вариант 2.

7 комментариев:

  1. Миша, а зачем так извращаться, если все эти изменения можно сделать в процессе установки (об этом, кстати, в твоей вики есть ссылка на вмваревскую статью в КB).

    ОтветитьУдалить
  2. а что за ссылка имеется в виду, что-то быстро не нашел %)

    во вторых - полезно знать разные способы.

    ОтветитьУдалить
  3. Оппс... Тоже с ходу не нашел. Но месяца полтора назад в процессе поиска решения как раз через твой сайт и нашел статью в KB. Вот она (начиная с "Alternatively, you can reconfigure the installer to install ESX 4.0 with a different blocksize")

    http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1012683

    ОтветитьУдалить
  4. точно!

    после вашего первого комментария я вспомнил примерную суть, но саму ссылку не нашел. спасибо.

    ОтветитьУдалить
  5. А есть какой-нибуть способ изменить размер блока во время установки ESXi 4.1.0?
    Дело в том что там дистрибутивный диск и установка отличаются от ESX 4.1. Поэтому способ описаный в вашей статье и в статье http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1012683
    не работают.

    ОтветитьУдалить
  6. Действитен-ли данный способ для ESXi 5.0 ?

    ОтветитьУдалить
  7. Парадоксальное по простоте решение http://dmitrybobrovsky.ru/2011/08/11/create-datastore-desired-block-size-during-installation-esxi

    ОтветитьУдалить