13 января 2010

Доступ к файлам виртуальных машин ESX при помощи libguestfs

Richard W.M. Jones в своем блоге опубликовал интересный пост о работе при помощи утилит libguestfs с образами VMware ESX4. Немного дополнив, напишу, в чем суть. Во-первых нам понадобятся пакеты fuse-sshfs и guestfish. Первый позволяет монтировать при помощи FUSE удаленную файловую систему по SSH FTP, а второй установит в систему интерактивную командную оболочку, из которой можно получать доступ к образам дисков виртуальных машин, в том числе и vmdk. Естественно, в системе должны присутствовать стандартные компоненты виртуализации Fedora, в частности, работающий демон libvirtd.

Для начала проверяем, какие присутствуют на хосте ESX виртуальные машины:

[andrey@f13 ~]$ virsh -c esx://192.168.1.12?no_verify=1 list --all
Enter username for 192.168.1.12 [root]:
Enter root password for 192.168.1.12:
ID Имя Статус
----------------------------------
208 www выполнение
224 mail выполнение
- 2RHEL5_DS отключить
- 2W2003_DC отключить
- RHEL5_IPA отключить
- RHEL5_Satellite53 отключить
- RHEL5_Server1 отключить
- RHEL5_Station отключить
- RHEL5_Station2 отключить
- RHEL5_Zimbra отключить

Далее смонтируем через FUSE соответствующую директорию файловой системы vmfs:

[andrey@f13 ~]$ mkdir esx
[andrey@f13 ~]$ sshfs root@192.168.1.12:/vmfs/volumes esx
root@192.168.1.12's password:
[andrey@f13 ~]$ cd esx/
[andrey@f13 esx]$ ls
4ac343f6-500e2828-d805-0022640793d2 LocalStorage1

Естественно, мы ничего нового по сравнению с тем, что нам покажет vCenter client, не увидели. Далее переходим в директорию с нужной нам виртуальной машиной:

[andrey@f13 esx]$ cd LocalStorage1/RHEL5_IPA/
[andrey@f13 RHEL5_IPA]$ ls
RHEL5_IPA-flat.vmdk RHEL5_IPA.vmdk RHEL5_IPA.vmx vmware.log
RHEL5_IPA.nvram RHEL5_IPA.vmsd RHEL5_IPA.vmxf

При помощи новой утилиты virt-list-filesystems (в версии libguestfs репозитория Fedora 12 пока ее нет, зато есть в Rawhide) смотрим какие разделы доступны внутри образа:

[andrey@f13 RHEL5_IPA]$ virt-list-filesystems -al RHEL5_IPA-flat.vmdk
/dev/sda1 ext3
/dev/vol0/home ext3
/dev/vol0/root ext3
/dev/sda3 swap

И, наконец, запускаем интерактивную командную оболочку:

[andrey@f13 RHEL5_IPA]$ guestfish --ro -a RHEL5_IPA-flat.vmdk -m /dev/vol0/root

Welcome to guestfish, the libguestfs filesystem interactive shell for
editing virtual machine filesystems.

Type: 'help' for help with commands
'quit' to quit the shell

> ll /
total 192
drwxr-xr-x. 22 root root 4096 Oct 24 07:47 .
dr-xr-xr-x 29 root root 0 Jan 8 12:59 ..
drwxr-xr-x. 2 root root 4096 Oct 7 15:07 bin
drwxr-xr-x. 2 root root 4096 Oct 7 13:45 boot
drwxr-xr-x. 4 root root 4096 Oct 7 13:45 dev
drwxr-xr-x. 93 root root 12288 Oct 24 07:47 etc
drwxr-xr-x. 2 root root 4096 Oct 7 13:45 home
....

Ну, а дальше man guestfish и help для списка команд оболочки. Для виртуальных машин с включенным SELinux крайне желательно использовать ключ --selinux, иначе при попытке записи файлов вы можете создать при монтировании образа r/w файлы без меток SELinux.

Архитектура корпоративной почтовой системы на Zimbra Collaboration Suite

Немного об архитектуре Zimbra Collaboration Suite, для того чтобы было понятно "а что же там внутри?". Референсная схема почтовой системы приведена ниже:


К основным компонентам почтовой системы относятся почтовые серверы Zimbra, выполняющие определенные функциональные роли в почтовой системе (Роли: Zimbra mailbox server, Zimbra LDAP, Zimbra MTA, Edge).

Zimbra mailbox server – выделенный сервер, управляющий всем содержимым почтовых ящиков, включая письма, контакты, календарь, заметки, файлы, прикрепленные к письмам. Исполняет функции MDA. Сообщения поступают от сервера Zimbra MTA и затем пропускаются через созданные фильтры. Далее сообщения индексируются и помещаются в корректный почтовый ящик. В дополнение к Zimbra mailbox server подключаются отдельные тома для хранения резервных копий и фалов журналов.

Zimbra LDAP – служба каталогов, представляющая из себя сервер OpenLDAP с инсталлированной схемой Zimbra. Используется для хранения информации о конфигурациях служб, управления и информации о пользователях почтовой системы. Для аутентификации используется либо Zimbra LDAP в связке с Kerberos, либо существующая инфраструктура Microsoft Active Directory.

Zimbra MTA — принимает почтовые сообщения по протоколу SMTP и отправляет соответствующее письмо на соответствующий Zimbra mailbox server по протоколу Local Mail Transfer Protocol (LMTP), используя информацию полученную с Zimbra LDAP. Сервер Zimbra MTA включает в себя следующие компоненты:

• Postfix MTA для маршрутизации, перенаправления почты и блокировки вложений.
• Антивирус Clam AntiVirus, который используется для сканирования почтовых сообщений и вложений на предмет наличия вирусов
• Почтовый фильтр SpamAssassin, для фильтрации спама
• Amavisd-New, a Postfix фильтр контента, используемый в качестве интерфейса между Postfix и ClamAV / SpamAssassin


Пограничные транспортные серверы (серверы роли Edge) обеспечивают маршрутизацию трафика электронной почты по протоколу SMTP между пользователями и внешними адресатами в Internet, а также возможно защиту от вирусов и нежелательных сообщений для всего потока сообщений, проходящего через эти пограничные серверы. Серверы этой роли устанавливаются в зоне периметра.

VMware Zimbra


Вчера компания VMware анонсировала приобретение Zimbra у Yahoo. Zimbra одна из лучших открытых систем коллективной работы, а в редакции Network Edition с коммерческой поддержкой представляет вполне достойную альтернативу MS Exchange, особенно с точки зрения стоимости. VMware в первую очередь Zimbra интересна в качестве сервиса работающего в «облаке» и поставляющегося по модели SaaS. В настоящее время Zimbra имеет более 55 миллионов оплаченных почтовых ящиков и эта цифра быстро растет. Сравнение с технической точки зрения различных редакций Zimbra Collaboration Suite и список функций доступен по ссылке.