VMware и базы данных

User avatar
bvp
Уже с Приветом
Posts: 3384
Joined: 01 May 1999 09:01
Location: UA -> RU -> AU -> USA.CA.SFBA

Post by bvp »

Dmitry67 wrote:Теперь можно сформулировать конкретный вопрос:
пусть виртуальная машина пишет/читает с FILE_FLAG_WRITE_THROUGH, FILE_FLAG_NO_BUFFERING
очевидно, VMware про эти биты ничего не знает
Так что для основной Windows эти чтения/записи будут совершенно обычными

Ну почему же ничего не знает?
Там ведь написано:
The operating system also requests a write-through the hard disk cache to persistent media.

То есть (в этом я уже не специалист, но по тексту так получается) в команде контроллеру жесткого диска есть бит "сделай write-through через свой аппаратный кэш". Хост-машина по идее, увидев этот бит в запросе гостевой машины, в свою очередь должна использовать FILE_FLAG_WRITE_THROUGH и FILE_FLAG_NO_BUFFERING в операции записи в файл.
User avatar
Flash-04
Уже с Приветом
Posts: 63430
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Post by Flash-04 »

KP580BE51 wrote:К примеру qemu может вообще работать интерпретатором, и исполнять не свой код. (ну к примеру ARM или PPC на x86) в таком режиме приложение в принципе ничего сделать не может.

почему же не может? еще как может :food:
учитывая что абсолютной 100% виртуализации все равно нет, "вредное" приложение может определять тип виртуализатора (проблема "красной таблетки") и внедрять код для нужного CPU хоста, если такая вохможность имеется. или "валить" его на худой конец.
к примеру VMWare определить на раз, т.к. по их же рекомендации нужно ставить драйвера виртуальной виде-карты и т.п., которые имеют название VMWare virtual... кроме того есть другие методы определения, они описаны (особые значение управляющих регистров CPU и т.д)
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

bvp wrote:То есть (в этом я уже не специалист, но по тексту так получается) в команде контроллеру жесткого диска есть бит "сделай write-through через свой аппаратный кэш". Хост-машина по идее, увидев этот бит в запросе гостевой машины, в свою очередь должна использовать FILE_FLAG_WRITE_THROUGH и FILE_FLAG_NO_BUFFERING в операции записи в файл.


Что??? Это флаги для Windows, диск про такие флаги ничего не знает
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

Flash-04 wrote:учитывая что абсолютной 100% виртуализации все равно нет,

Почему нет? Как я понимаю, как раз 100 процентная делается легче всего. Или я неправ?
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

f_evgeny wrote:
Flash-04 wrote:учитывая что абсолютной 100% виртуализации все равно нет,

Почему нет? Как я понимаю, как раз 100 процентная делается легче всего. Или я неправ?


На Intel 32 bit это невозможно. Есть принципиальная засада :(
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

Dmitry67 wrote:
f_evgeny wrote:
Flash-04 wrote:учитывая что абсолютной 100% виртуализации все равно нет,

Почему нет? Как я понимаю, как раз 100 процентная делается легче всего. Или я неправ?


На Intel 32 bit это невозможно. Есть принципиальная засада :(

Какая? Не понимаю.
:pain1:
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

f_evgeny wrote:Какая? Не понимаю.
:pain1:


А сам в этом мало что понимаю
Кратко, пересказывая более умных.

В Intel все прекрасно виртуализуется за малой ложечкой дегтя, которая все портит. Это команды, который по своей сути привилегированные, типа узнать номер кольца, но прерывания в обычном режиме они не вызывают

На защиту это не влияет - код, просто узная номер кольца испортить ничего не может. Но виртуализацию ломают напрочь. Если бы прерывание было, то VMware просто бы его словило и изобразило бы для guest system все что надо. Но увы...

В итоге они парзят код, ведит список отпарзеных страниц, находят такие команды и вставляют туда нечто, таки вызывающее прерывание. Если код самомодифицируюйся, то все еще сложее. В общем, эвристики и трюки...
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
Flash-04
Уже с Приветом
Posts: 63430
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Post by Flash-04 »

IDT и GDT можно читать, т.к. это не привелигированные инструкции 8) в режиме виртуализатора их содержимое существенно другое чем в случае реальной OS.

Dmitry67 успел быстрее :D
User avatar
Quintanar
Уже с Приветом
Posts: 1609
Joined: 03 Feb 2004 11:19
Location: Moscow

Post by Quintanar »

Flash-04 wrote:IDT и GDT можно читать, т.к. это не привелигированные инструкции 8) в режиме виртуализатора их содержимое существенно другое чем в случае реальной OS.

Dmitry67 успел быстрее :D

А новый API для виртуализации? Там, вроде, предусмотрены прерывания на группы комманд.
Правда, по мнению VMWare аппаратная виртуализация еще хуже программной.
Ya cayo el telon de acero y derribamos el muro de Berlin
y ahora todos juntos como hermanos vamos de la mano a comer a un Burger King
User avatar
Quintanar
Уже с Приветом
Posts: 1609
Joined: 03 Feb 2004 11:19
Location: Moscow

Post by Quintanar »

А вообще, странно рассчитывать хоть на какую-то производительность в случае баз данных. Самое слабое место VMWare - это IO и виртуальная память. IO - понятно, постоянные переключения контекста, чреватые сбросом tbl кеша. Виртуальная память еще хуже, поскольку нужно поддерживать альтернативную таблицу страниц. А это много памяти, потраченной на какую-то ерунду, и опять же постоянные переключения контекста при каждой записи в таблицы страниц гостя. Для процесса, который только аллокацией памяти и вводом-выводом и занимается, это верный путь к страшным тормозам.
Ya cayo el telon de acero y derribamos el muro de Berlin
y ahora todos juntos como hermanos vamos de la mano a comer a un Burger King
alex_127
Уже с Приветом
Posts: 7723
Joined: 29 Mar 2000 10:01
Location: Kirkland,WA

Post by alex_127 »

Dmitry67 wrote:
bvp wrote:То есть (в этом я уже не специалист, но по тексту так получается) в команде контроллеру жесткого диска есть бит "сделай write-through через свой аппаратный кэш". Хост-машина по идее, увидев этот бит в запросе гостевой машины, в свою очередь должна использовать FILE_FLAG_WRITE_THROUGH и FILE_FLAG_NO_BUFFERING в операции записи в файл.


Что??? Это флаги для Windows, диск про такие флаги ничего не знает


Read this for detailed explanation http://www.microsoft.com/technet/prodte ... asics.mspx and http://www.microsoft.com/technet/prodte ... asics.mspx

*Standard word of caution*: not all IDE drives are honoring FILE_FLAG_WRITE_THROUGH. So it means that even if we are specifying right combination of the flags to get that behavior not all hw devices honor it. Some vendors provide utilities to explicitly turn off disk cache.
User avatar
bvp
Уже с Приветом
Posts: 3384
Joined: 01 May 1999 09:01
Location: UA -> RU -> AU -> USA.CA.SFBA

Post by bvp »

Dmitry67 wrote:
bvp wrote:То есть (в этом я уже не специалист, но по тексту так получается) в команде контроллеру жесткого диска есть бит "сделай write-through через свой аппаратный кэш". Хост-машина по идее, увидев этот бит в запросе гостевой машины, в свою очередь должна использовать FILE_FLAG_WRITE_THROUGH и FILE_FLAG_NO_BUFFERING в операции записи в файл.

Что??? Это флаги для Windows, диск про такие флаги ничего не знает

Да? Тогда как понимать фразу из ранее процитированного:
The operating system also requests a write-through the hard disk cache to persistent media. However, not all hardware supports this write-through capability.

Я понимаю это так, что ОС именно требует от диска, чтобы он писал помимо своего кэша. Следовательно, есть способ это диску сказать (какая-нибудь команда контроллеру). Если это не так, то причем тут фраза о том, что не все диски такой запрос поддерживают?

Вот еще из MS документации:
http://support.microsoft.com/kb/332023
When the Write Cache Enabled option is configured for a disk device in Device Manager, two things occur:
• A command to turn on or turn off Write Caching is sent to the disk device.
• A registry value is saved, which the disk driver uses to determine whether or not to issue write-cache-management commands (Flush, Write-Through) to the disk.

Тут явно написано о команде включения/выключения кэша, которая посылается именно диску как устройству.
User avatar
bvp
Уже с Приветом
Posts: 3384
Joined: 01 May 1999 09:01
Location: UA -> RU -> AU -> USA.CA.SFBA

Post by bvp »

alex_127 wrote:*Standard word of caution*: not all IDE drives are honoring FILE_FLAG_WRITE_THROUGH. So it means that even if we are specifying right combination of the flags to get that behavior not all hw devices honor it. Some vendors provide utilities to explicitly turn off disk cache.

Это не важно в контексте данного разговора. Если guest OS пытается сделать write-through через дисковый кэш, выставляя нужные флаги, то host OS видит эту попытку (=флаги) и знает, что она тоже должна использовать у себя режим write-through.
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

Flash-04 wrote:IDT и GDT можно читать, т.к. это не привелигированные инструкции 8) в режиме виртуализатора их содержимое существенно другое чем в случае реальной OS.

Dmitry67 успел быстрее :D

Но если полностью эмулируется процессор? Конечно производительность тогда не очень, но в принципе?
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

По поводу write-thru я почитаю
Но вот это

If FILE_FLAG_NO_BUFFERING is also specified, so that system caching is not in effect, then the data is immediately flushed to disk without going through the system cache.


речь идет о Windows cache, не так ли? Значит, этот флаг будет теряться при виртуализации

2 f_evgeny: да, конечно при полной эмуляции все будет рабоатть, но летать такой крокодил будет низэнько-низэнько
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014

Return to “Вопросы и новости IT”