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

dB13
Уже с Приветом
Posts: 1494
Joined: 08 May 2001 09:01
Location: Silicon Valley

Post by dB13 »

PavelM wrote:3. Что совсем смешно, отрицание возможности софтовых багов в менеджере виртуализации и вытекающих проблем.


Это где и кем?
dB13
Уже с Приветом
Posts: 1494
Joined: 08 May 2001 09:01
Location: Silicon Valley

Post by dB13 »

KP580BE51 wrote:
Boriskin wrote:А я вот чего не понимаю - зачем ставить продакшн сервер на VM, когда можно достаточно дешево купить нормальную тачку и иметь stand-alone сервак на ней... Минимизация server-racks и охлаждения оных чтоль?

Когда серверов много, когда загрузка низкая итд. Кроме того в идиале оно как я понял движется к полной виртуализации в виде когда к примерк 1000 серверов крутится на клястере из 300 компютеров, которые можно по необходимости включать/выключать, апгрейдеть итд.


Да, KP580BE51 всё правильно понимает. В идеале -- на 1000 серверов -- 50-100 ящиков с 1-2 2-4core CPUs.

Опять же, сколько времени займёт "купить нормальную тачку" и установить её? А создать/включить новую виртуальную машину -- значительно быстрее (минуты, десятки минут).
User avatar
KP580BE51
Уже с Приветом
Posts: 15007
Joined: 14 Jun 2005 11:50
Location: Ukraine

Post by KP580BE51 »

dB13 wrote:Опять же, сколько времени займёт "купить нормальную тачку" и установить её? А создать/включить новую виртуальную машину -- значительно быстрее (минуты, десятки минут).

Секунды. Если к тому же крутится 100 сервров под юниксом, но они могут спокойно шарить /bin /lib/ /usr/lib итд. гораздо удобнее патчить, апгрейдить итд. К тому же такая система без головной боли позволяет продавать хостинг с root shell
Падение производительности в случае с xen должно быть очень не значительным, как я понял. (блин, когда же nvidia начнет его поддерживать :angry: )
int21h
Уже с Приветом
Posts: 5960
Joined: 20 Jan 2007 04:47
Location: Seattle <> MosCow

Post by int21h »

KP580BE51 wrote:К тому же такая система без головной боли позволяет продавать хостинг с root shell


VM тоже позволяет без головной боли продавать хостинг с рутшел.
User avatar
KP580BE51
Уже с Приветом
Posts: 15007
Joined: 14 Jun 2005 11:50
Location: Ukraine

Post by KP580BE51 »

int21h wrote:
KP580BE51 wrote:К тому же такая система без головной боли позволяет продавать хостинг с root shell


VM тоже позволяет без головной боли продавать хостинг с рутшел.

А я что написал? 8O
User avatar
bvp
Уже с Приветом
Posts: 3384
Joined: 01 May 1999 09:01
Location: UA -> RU -> AU -> USA.CA.SFBA

Post by bvp »

Dmitry67 wrote:Что касается обычных партиций, то он работает через fily system, но использует какие то особые команды. Я в этом плохо понимаю. Какой то бит writethru или чтото такое. Короче, все эти чтения идет помимо кэша файловой системы (но не помимо файловой системы).

http://msdn2.microsoft.com/en-us/library/aa363858.aspx
The CreateFile function creates or opens a file, file stream, directory, physical disk, volume, console buffer, tape drive, communications resource, mailslot, or named pipe.
Parameters
dwFlagsAndAttributes
[in] The file attributes and flags.
FILE_FLAG_WRITE_THROUGH
The system writes through any intermediate cache and goes directly to disk.
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. The operating system also requests a write-through the hard disk cache to persistent media. However, not all hardware supports this write-through capability.
dB13
Уже с Приветом
Posts: 1494
Joined: 08 May 2001 09:01
Location: Silicon Valley

Post by dB13 »

Flash-04 wrote:8O совсем недавно в руки попала статья об исследовании проблемы "синей и красной таблетки" с разными виртуализаторами, и как их можно эффективно валить их и выполнять произвольный код на реальном хосте из виртуализованного приложения. VMWare был в их числе. 8)


В этой статье ("An Empirical Study into the Security Exposure to Hosts of Hostile Virtualized Environments" by Tavis Ormandy) не приводится ни одного доказательства (полного примера) как "выполнять произвольный код на реальном хосте из виртуализованного приложения" ни для одного виртуализатора. Я утверждаю, что та обнаруженная дырка в VMware Workstation and Server этого не позволяет.

"Валить"/выключать VMware виртуальную машину изнутри можно только by a privileged application/driver, которое может писать в (виртуальные) порты ввода-вывода. На реальном железе будет та же история.
User avatar
Dmitry67
Уже с Приветом
Posts: 28283
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

bvp, спасибо. именно эти два флага sql server и используется.
думаю, Oracle под Windows тоже

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

Более того, так как SQL server всегда дожидается окончания записи в Tr.Log, то под виртуальной машиной ему покажется что вывод завершился, хотя физически это нет так?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
KP580BE51
Уже с Приветом
Posts: 15007
Joined: 14 Jun 2005 11:50
Location: Ukraine

Post by KP580BE51 »

Dmitry67 wrote:bvp, спасибо. именно эти два флага sql server и используется.
думаю, Oracle под Windows тоже

Теперь можно сформулировать конкретный вопрос:
пусть виртуальная машина пишет/читает с FILE_FLAG_WRITE_THROUGH, FILE_FLAG_NO_BUFFERING

Можете написать такую программу? Чтобы она так писала попеременно в два разных файла? Я просто проверю, будет винт визжать или нет.
Я думаю что если операционной системе отдан раздел, то ничего кешироваться не будет.
User avatar
Dmitry67
Уже с Приветом
Posts: 28283
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Я последнее время чистый SQL-евец...
Может кто другой быстро напишет

Но рассуждая теоретически, если 'особенный' I/O sql server в виртуальной машине преобразуется в обычный вовне, то опасность в том, что SQL server может отрапортовать (по сети) об окончании транзакции, когда данные еще не записаны на диск (в современном мире - хотя бы переданы RAID/Disak array с контроллером с резервным питанием). А вот это уже совсем плохо
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
KP580BE51
Уже с Приветом
Posts: 15007
Joined: 14 Jun 2005 11:50
Location: Ukraine

Post by KP580BE51 »

Dmitry67 wrote:Я последнее время чистый SQL-евец...
Может кто другой быстро напишет

Но рассуждая теоретически, если 'особенный' I/O sql server в виртуальной машине преобразуется в обычный вовне, то опасность в том, что SQL server может отрапортовать (по сети) об окончании транзакции, когда данные еще не записаны на диск (в современном мире - хотя бы переданы RAID/Disak array с контроллером с резервным питанием). А вот это уже совсем плохо

Нет конечно. Не все так просто. VM просто передается ресурс, к примеру раздел. А как она с ним работает, хочет - кеширует, хочет, не кеширует. Основная ось только права проверяет, может он там что-то делать или нет. VM можно вообще передать физическую к примеру PCI плату или USB устройство.
User avatar
Dmitry67
Уже с Приветом
Posts: 28283
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

1. Но для файлов, не разделов Вы согласны?
2. Даже если выделен раздел, где гарантия что она ждет окончания записи?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
Dmitry67
Уже с Приветом
Posts: 28283
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Хм, не меня одного этот вопрос забеспокоил:

http://aspdeveloper.net/Virtual_Server_ ... ed_by.aspx

Does Virtual Server honour FILE_FLAG_WRITE_THROUGH setting used by
Source: microsoft.public.virtualserver
Sent: 07/17/2005
From: DilbertDBA
Message:

When SQL Server writes a transaction log record to stable storage (real
spinning disk) it is essential that the record is committed before SQL Server
continues. When running on real hardware this is achieved with the
FILE_FLAG_WRITE_THROUGH setting of the Windows API CreateFile function
(indicates that a SCSI device may not complete a write request until the data
is committed to media). I am worried that when Virtual Server virtualises the
SCSI drive, it is caching the write, telling the guest OS that it has been
done, and then finishing the I/O later. This shows up as good I/O performance
(which I am seeing) but can lead to data loss if the guest virtual machine is
powered off or the host machine loses power before finishing the write to
stable storage. Does Virtual Server genuinely honour the
FILE_FLAG_WRITE_THROUGH setting?

Но ответа там нет :)
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
KP580BE51
Уже с Приветом
Posts: 15007
Joined: 14 Jun 2005 11:50
Location: Ukraine

Post by KP580BE51 »

Dmitry67 wrote:1. Но для файлов, не разделов Вы согласны?

Скорее всего да. Но вообще то раздел где файлы может быть смонтирован без кеширования на запись.

2. Даже если выделен раздел, где гарантия что она ждет окончания записи?

В каком смысле?
User avatar
Dmitry67
Уже с Приветом
Posts: 28283
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Интересно. А как это отключить для раздела в Windows? 8O
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
KP580BE51
Уже с Приветом
Posts: 15007
Joined: 14 Jun 2005 11:50
Location: Ukraine

Post by KP580BE51 »

Dmitry67 wrote:Интересно. А как это отключить для раздела в Windows? 8O

Не знаю. Винда отцтой.
Вообще vmware может просто писать в файл с разделом в режиме без кеширования. (это в винде можно сделать?) Тогда вроде как все условия выполняются.
User avatar
Mark
Уже с Приветом
Posts: 1980
Joined: 10 Oct 2000 09:01
Location: New England

Post by Mark »

Олег привет! К сожалению у меня тоже негативный опыт с VMWare+Oracle. Один из моих клиентов запустил этот вариант в продакшн, ничего особо хорошего не вышло. Производительность упала в серднем процентов на 50.
Резон собственно был один - запустить на одном сервере 2 и более инстансов OEBS (Oracle E-Business Suite) под Windows, без VM это практически невозможно. Цель достигнута, но пришлось радикально вкладываться в hardware.
User avatar
Flash-04
Уже с Приветом
Posts: 63377
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Post by Flash-04 »

dB13 wrote:В этой статье ("An Empirical Study into the Security Exposure to Hosts of Hostile Virtualized Environments" by Tavis Ormandy) не приводится ни одного доказательства (полного примера) как "выполнять произвольный код на реальном хосте из виртуализованного приложения" ни для одного виртуализатора. Я утверждаю, что та обнаруженная дырка в VMware Workstation and Server этого не позволяет.

http://taviso.decsystem.org/virtsec.pdf

тогда как понимать это:
Vulnerabilities affecting the security of the host
VMware virtual machine have been published before. In
Tim Shelton reported a heap overflow in the vmnatd service[
24], where a specially crafted EPRT or PORT FTP command
would result in an exploitable heap overflow, allowing
hostile virtualized code to compromise and thus execute
the host machine.

A communication channel exists between the guest
host, and while officially undocumented, has been successfully
reverse engineered and documented by several researchers
and is known as the “VMware Backdoor”[
Theoretically this channel could allow hostile guests to
clipboard data, leak sensitive information about the host,
other potentially dangerous operations. Care should be taken
avoid it when hosting potentially hostile machines.

я согласен, что для VMWare примера позволяющий исполнить свой код - не приведен. Но в приложении для других виртуализаторов (bochs 2.3) показано переполнение буфера в коде самого виртуализатора, что потенциально можно использовать для внедрения своего кода. Разумеется, сконструировать такой пример непросто. Но теоретическая возможность для этого есть. С этим спорить не будете?
Кроме того, есть пример, как виртуализованное приложение "валит" VMWare. Этого уже достаточно чтобы сделать заключение о том, что виртуализация не полная, т.к. виртуализатор не должен себя так вести. Максимум что он сделать при такой ситуации - остановить виртуальную OS и сообщить о невостановимой ошибке в ней, но никак уж у себя.
PavelM
Уже с Приветом
Posts: 13316
Joined: 13 Jun 1999 09:01
Location: Yekaterinburg -> Montreal

Post by PavelM »

dB13 wrote:
PavelM wrote:3. Что совсем смешно, отрицание возможности софтовых багов в менеджере виртуализации и вытекающих проблем.


Это где и кем?


Как Вы понимаете, рядового клиента не допускают до основных разработчиков, так что как обычно приходится слушать речи продавцов. :D
А там такого наслушаешся.
Вот типичный диалог:

Клиент: А хорошо ли ВМ изолированы?

Продавец: ВМ - это как физический компьютер, ни при каких обстоятельствах ВМ не может повлиять на работу хоста и др. ВМ.

К: И все же, вот мы читали что поскольку ИА32 не поддерживает виртуализацию на уровне железа, ВМ использует программную прослойку которая емулирует/подменяет некоторые комманды процессора. А что если там ошибки?

П: Этого не может быть. Размер кода очень маленький и мы его хорошо протестировали, кроме этого сторонние эксперты также провели ревизию кода.

К: Ну дайте хоть имя компании которая проверяла ваш код.
П: Это секрет и мы его разглашать не будем чтобы "защитить эту компанию". :pain1:


Ввиду явной неопределенности риска, в текущем проекте я рекомендовал не виртуализировать внешние сервера. (DMZ и пр.)
User avatar
KP580BE51
Уже с Приветом
Posts: 15007
Joined: 14 Jun 2005 11:50
Location: Ukraine

Post by KP580BE51 »

Flash-04 wrote:Но в приложении для других виртуализаторов (bochs 2.3) показано переполнение буфера в коде самого виртуализатора, что потенциально можно использовать для внедрения своего кода.

Может обсудить разные типы виртуализации?
К примеру qemu может вообще работать интерпретатором, и исполнять не свой код. (ну к примеру ARM или PPC на x86) в таком режиме приложение в принципе ничего сделать не может.
Вообще, главный вопрос тут в том, что виртуализатор на порядок проще чем операционная система. Тоесть баги в нем на порядки проще выловить.
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: 63377
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: 28283
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: 28283
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

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