VMFS, Virtual Machine File System

Дискові ресурси, до яких здійснюється блоковий доступ, – а це локальні диски (або інші DAS) і LUN на системах зберігання FC і iSCSI – ESX (i) може відформатувати у файлову систему VMFS Це пропріетарна, закрита файлова система від VMware, що володіє корисним під потреби віртуалізації функціоналом:

Q кластерний VMFS є кластерної файлової системою Це озна-

чає, що з відформатованим в цю файлову систему розділом можуть працювати одночасно кілька серверів VMFS володіє системою блокувань, яка забезпечує цілісність даних

Q підтримка файлів великих розмірів У розділі VMFS можуть бути розташовані файли розміром до 2 Тб Це, до речі, обмеження на розмір одного диска ВМ – не більш 2 Тб мінус 512 байт

Q VMFS є журнальованою файлової системою

Q мінімальні накладні витрати – при розміщенні файлу віртуального диска в розділі VMFS якогось LUN ми отримуємо продуктивність, практично ідентичну того, як якби цей же LUN ​​віддавали ВМ як RDM, безпосередньо

Створити розділ VMFS досить просто Якщо у нас є видимі ESX (i) диски (LUN) і на якомусь з них ми хочемо створити VMFS, то для цього йдемо

Запуститься майстер По кроках:

Ми хочемо відформатувати в VMFS якийсь диск / LUN, а не подмонтіровать NFS Залишаємо варіант «Disk/LUN»(Рис 323)

Потім вибираємо, на якому з LUN ми хочемо створити VMFS Нам будуть перед-

ложени тільки ті, на яких розділу VMFS ще не створено, тому що на одному LUN ми можемо створити тільки один розділ VMFS (рис 324)

Рис 323 Додавання сховища VMFS

Рис 324 Вибір LUN для створення розділу VMFS

Зверніть увагу: на цьому етапі ми можемо потрапити у великі неприємності, бо в порожніх незадіяних LUN в цьому списку можуть знаходитися LUNи з даними, але підключення як RDM Якщо ми виберемо такий LUN і створимо на ньому VMFS, то дані гостьовий ОС будуть знищені Тому дуже важливо напевно знати адресу LUN, який ми створили під VMFS Ідентифікатором може служити номер LUN в першу чергу Шлях до LUN – так як з нього можна зрозуміти, через який контролер ESX (i) цей LUN бачить Нарешті, непрямим ідентифікатором може служити розмір Загалом, будьте уважно ни На щастя, для кожного LUN ми можемо вказати довільний, легкий у сприйнятті ідентифікатор – див розділ 39 «Адресація SCSI»

На наступному кроці нам покажуть інформацію про обраний диску

Потім запропонують ввести «Datastore Name», імя сховища По суті, це мітка тому, яку ми потім будемо бачити в інтерфейсі vSphere Client У ваших інтересах зробити її максимально інформативною, це знову ж зведе до мінімуму ймовірність помилок у майбутньому Має сенс вказати тип СГД, завдання, якщо LUN виділена під конкретні цілі Наприклад, «fc_lun_db_ production» У цьому імені також має сенс уникати прогалин і спецсимволов

Рис 325 Вибір розміру блоку для створюваного розділу VMFS

Крок Formatting – Найцікавіший, див рис 325

Тут ми вказуємо розмір блоку створюваного VMFS, від цього залежить максимальнийрозмір одного файлу на цьому розділі За умовчанням пропонується розмір блоку в 1 Мб При такому блоці максимальний розмір файлу може бути 256 Гб Це означає, що в такому розділі VMFS не вийде розташувати віртуальний диск для ВМ (файл vmdk) розміром, наприклад, 300 Гб

Рекомендація проста – вибирайте такий розмір блоку, щоб диски ваших ВМ вміщалися Якого розміру будуть диски ваших ВМ А це залежить від завдань і навантаження, в загальному випадку сказати не можна, це питання планування Деякі міркування наведені в першому розділі в розділі, присвяченому сайзінгу

З появою ESX (i) версії 41 і функції VAAI (див розділ 310) для вас може бути важливо всі або деякі розділи VMFS створити з однаковим розміром блоку – щоб працював механізм VAAI

Також на цьому кроці майстра ви можете вказати розмір створюваного розділу – чи займає він LUN цілком або тільки його частину Думаю, ви завжди будете залишати варіант за замовчуванням – і VMFS займатиме все місце на LUN Причин чинити по-іншому я не бачу

Зверніть увагу Незважаючи на розмір блоку від мегабайта, при операціях читання-запису VMFS оперує «субблок» розміром в 64 Кб

Якщо вам потрібно видалити розділ VMFS, то в цьому допоможе посилання Remove, Розташована поруч з описаною вище Add Storage Натискання Remove для розділу VMFS саме видалить розділ і всі дані на ньому Якщо необхідно не видаляти розділ, а зробити його недоступним конкретного сервера, то це робиться за допомогою операції LUN Masking, виконуваної на системі зберігання або на сервері ESX (i)

Якщо подивитися властивості щойно створеного сховища VMFS, то ми побачимо, що кілька сотень мегабайт на ньому відразу зайняті Зайняті вони під так звані метадані, «metadata», опис розділу

Самі файли метаданих розташовані в корені розділу:

Q  fdcsf – file descriptor system file

Q  sbcsf – sub-block system file

Q  fbbsf – file block system file

Q  pbcsf – pointer  block system file

Q  vhsf – volume header system file

У цих метаданих зберігається інформація про сам розділі:

Q Block Size – розмір блоку

Q Number of Extents – кількість розширень розділу VMFS (extent), тобто на які ще LUN ​​поширений цей том VMFS

Q Volume Capacity – розмір розділу

Q VMFS Version – версія VMFS

Q Volume Label – мітка розділу VMFS

Q VMFS UUID – унікальний ідентифікатор розділу VMFS Переглянути цю інформацію можна командою

vmkfstools-P-h / vmfs / volumes / <мітка тому VMFS>

Зверніть увагу Метадані розділу VMFS займають тим більше, чим більше сам розділ Як максимум метадані можуть займати до 1200 Мб на розділі

Ще в метаданих зберігається інформація про файли на розділі Про те, що вони існують, про те, які блоки під них виділені, про те, з якого сервера вони відкриті

Важливий момент тут в наступному

VMFS пропонує спільний доступ з декількох серверів одночасно за рахунок блокування на рівні файлів Коли сервер запускає якусь ВМ, він блокує лише належні їй файли Інформація про їх блокування записується в метадані

Ось у вас є дві ВМ, їх файли розташовані на одному сховищі VMFS, і вони працюють на різних серверах У цьому випадку продуктивність даного LUN просто ділиться між цими ВМ, з мінімальними накладними витратами Ці ВМ одночасно читають і пишуть дані на одному і тому ж VMFS, кожна в свої файли

Але якщо необхідно внести зміни в метадані, то для внесення змін LUN віддається в монопольне користування серверу, який вносить зміни Робиться це за допомогою команди Reservation (Блокування) протоколу SCSI 2

SCSI Reservation відбувається при:

Q включенні і виключенні ВМ – тому що в метаданих треба прописати, що файли цієї ВМ тепер відкриті або закриті

Q створенні файлів Це такі операції, як створення віртуальної машини

або шаблону, клонування ВМ, Storage VMotion та міграція виключеною віртуальної машини на інше сховище, додавання диска ВМ, створення знімків стану

Q видаленні файлу

Q зміні власника файлу

Q установці мітки часу останнього звернення / зміни

Q збільшенні розділу VMFS

Q зміні розміру файлів – а це відбувається регулярно при роботі ВМ зі знімків стану і якщо її диски (файли vmdk) знаходяться у форматі thin

Файли змін (*-deltavmdk) знімків стану ростуть блоками по 16 Мб Тонкі диски збільшуються по одному блоку VMFS Ми записали всередину ВМ ще скільки мегабайт, файл vmdk стало необхідно збільшити, для вказівки нового розміру файлу в метаданих розділу стався SCSI reservation Потім vmdk-файл ще збільшився, SCSI reservation повторився І так далі

І що може вийти: на одному VMFS розташований десяток ВМ, всі працюють на різних серверах, у всіх знімки стану І кожен раз, коли у якоїсь ВМ треба збільшити розмір файла-дельти, відбувається SCSI reservation, і якесь маленьке час (зазвичай ~ 10 мілісекунд) девять інших серверів з цим LUN не працюють, тому що десятий вносить зміни в метадані Разово ця операція взагалі нестрашно і нормальна За даними VMware, і при середньому навантаженні негативний ефект на продуктивність від цих блокувань нульовий Але в граничних випадках, коли на одному сховищі багато ВМ, у всіх диски зростаючі і ці ВМ працюють на багатьох різних серверах, ми можемо недоотримати частину продуктивності LUN

Висновок: краще намагатися уникати постійної роботи при існуючих знімках стану (snapshot) для виробничих ВМ, а якщо для якихось із них це необхідно – намагатися тримати їх на окремих LUN від тих виробничих ВМ, яким особливо важлива продуктивність дискової підсистеми

Відстежити втрати продуктивності через регулярних блокувань ми можемо, проаналізувавши відповідний журнал Це файл / var / log / vmkernel, де ми можемо відстежити стався «reservation conflict»:

Apr 24 15:59:53  esx35-1  vmkernel:  5:14:57:01939  cpu0:1083)StorageMonitor: 196: vmhba1:0:3:0  status = 24/0  0x0 0x0 0x0

Apr 24 15:59:53  esx35-1  vmkernel:  5:14:57:01939 cpu0:1041)SCSI:  vm  1041:  109:  Sync CR at 64

Apr 24 15:59:56  esx35-1  vmkernel:  5:14:57:04982  cpu0:1151)StorageMonitor: 196: vmhba1:0:3:0  status = 24/0  0x0 0x0 0x0

Apr 24 15:59:56  esx35-1  vmkernel:  5:14:57:04982 cpu3:1041)SCSI:  vm  1041:  109:  Sync CR at 16

Apr 24 15:59:56  mel-esx-02  vmkernel:  5:14:57:05050  cpu0:1161)StorageMonitor: 196: vmhba1:0:3:0  status = 24/0  0x0 0x0 0x0

Apr 24 15:59:57  esx35-1  vmkernel:  5:14:57:06047 cpu3:1041)SCSI:  vm  1041:  109:  Sync CR at 0

Apr 24 15:59:57  esx35-1  vmkernel:  5:14:57:06047 cpu3:1041)WARNING:  SCSI: 119:  Failing I/O  due to  too  many  reservation conflicts

Якщо ви зіткнулися з ситуацією, коли блокування чинять негативний вплив на роботу дискової підсистеми, можна спробувати наступну конфі гурацію:

Зробити розширення розділу (extent) з декількох LUN, де перший LUN буде невеликим, близько 2 Гб Тоді на ньому не буде файлів-дисків ВМ (не влізуть), а залишаться тільки метадані І блокування SCSI не будуть впливати на швидкість роботи віртуальних машин на інших LUN

Також на VMFS є так званий «Heartbeat Region» У цій області сервери періодично оновлюють записи з метою повідомити про свою работоспособно сти Якщо сервер вийшов з ладу або втратив звязок з сховищем та своєчасно не оновив свій запис, блокування файлів цим сервером вважаються недійсними тельними

Джерело: Міхєєв М О Адміністрування VMware vSphere 41 – М: ДМК Пресс, 2011 – 448 с: Ил

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*