среда, 7 декабря 2016 г.

nBeers Engineers 2016-1

Коллеги, мы решили сделать маленькое теплое и ламповое мероприятие в неформальном стиле.

nBeers Engineers - чтобы ИТ-инженеры, архитекторы и мастера на все руки могли пообщаться за кружечкой пива.
А мы в процессе заодно расскажем и даже покажем нашу новую версию Nutanix OS 5.0 Asterix.

13 декабря с 18-30 в баре "Пес Борода" (метро Трубная, ул. Трубная 15)

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

Регистрация закрыта.

вторник, 18 октября 2016 г.

VMworld EU 2016

STO8165, John Nicholson (@Lost_Signal)
VSAN Networking Deepdive

* Используйте мультикаст флад только для выделенных под VSAN VLANов
* Если у вас несколько кластеров VSAN в одном VLAN - поменяйте им мультикаст адреса, чтобы каждый кластер имел свой уникальный. Или разнесите по разным VLAN
* Не делайте VSAN поверх L3 если не уверены зачем это делаете
* Для больших и нагруженных кластеров VSAN очень чувствителен к степени переподписки аплинков. В качестве средней температуры можно взять 4 к 1, но для каждого случая надо смотреть конкретнее
* Идеальный вариант коммутаторов для VSAN - со связями запад-восток. Осторожнее с Cisco FEX - там все через аплинк
* Jumbo frames не имеют большого значения для VSAN
* Локализация ввода-вывода (data locality) не имеет большого смысла для VSAN, ведь каждая запись должна все равно идти через сеть. /* Nutanix смотрит на это утверждение с удивлением.
* Начиная с 6.5 поддерживаются микрокластеры из двух узлов с прямым подключением между узлами (кросс-кабелем).
* Растянутый кластер требует VSAN Enterprise и поддерживается с сетями 10G 5ms RTT. 1 Гбит в целом поддерживается, но не рекомендуется.
* Для растянутого кластера требуется cluster witness. Он может быть виртуальной машиной или ESXi хостом (для него не требуется лицензия). Сетевое подключение - не менее 100 мегабит. /* Nutanix снова смотрит с удивлением, обходясь 2 мегабитами.
* Дедупликация идет фиксированными блоками 4 кб для All-Flash. Гибридный VSAN не поддерживает дедупликацию. /* Nutanix махнул рукой, ушел

INF8701, Brett Guarino
vSphere Core 4 Performance Troubleshooting and Root Cause Analysis, Part 2: Disk and Network

* VMXNET драйвер работает в ring 1, E1000 - ring 2
* Почти все сводится к esxtop
* Хотите при помощи esxtop анализировать сеть? Купите БОЛЬШОЙ монитор
* Ключевые показатели при анализе сети в vSphere
- используемые физические аплинки для каждого vmnic
- фактическая скорость на vmnic
- счетчик пакетов и средний размер пакета на vmnic
- отброшенные пакеты на vmnic
- фактическая скорость на физическом интерфейсе
- счетчик пакетов и средний размер пакета на физическом интерфейсе
- отброшенные пакеты на физическом интерфейсе
* Исследование дисковой системы - это куда больше веселья, чем сети :)
* Ключевые показатели - IOPS, задержки и фактическая скорость в мегабайтах в секунду
* Ситуации с DAVG/KAVG:
- низкий/низкий - идеально
- низкий/высокий - перегруженный хост
- высокий/низкий - перегруженная СХД
- высокий/высокий - проблема и там, и там. Но иногда слишком перегруженная СХД ведем к перегрузке дискового стека хоста.
** остаток доклада по дисковой системе фактически повторяет мою презентацию на VMUG 2014 в упрощенном виде. (http://blog.vadmin.ru/2014/06/vmug-2014.html)


VIRT8530, Rob Girard, Shawn Meyers
Deep Dive on pNUMA and vNUMA - Save Your SQL VMs from Certain DoomA!

* SQL не очень работает на AMD NUMA. Ставьте Intel. /* речь, разумеется, о широких SQL
* Неправильная конфигурация NUMA может вести к падению производительности до 40%
* По умолчанию vNUMA включается только при 9+ vCPU ВМ.
- Если у вас 4 или 6-ядерные процессоры и ВМ с большим количеством vCPU, чем ядер на процессоре - у вас будут проблемы с NUMA
- Можно исправить при помощи numa.min.vcpu для ВМ
* Лучший сайзинг ВМ - это много сокетов по 1 ядру. В этом случае автоматика отработает и ситуация будет близка к идеальной
- как только вы измените количество ядер на отличное от 1, конфигурация vNUMA зафиксируется
- vSphere определит топологию NUMA на первой загрузке. Это фиксируется в .vmx
- Используйте более одного ядра на сокет только для приложений с лицензированием по сокетам
- Если вы уверены в том, что делаете - сделайте сайзинг по границам узлов
* Идеальный сайзинг ВМ по vCPU - число, кратное одному узлу NUMA. Т.е. для 12-ядерного узла это 1, 2, 3, 4, 6, 12. На практике 3 vCPU ВМ работает на 6-ядерном процессоре лучше, чем 4vCPU.
* vSphere 6.5 позволяет сделать двойной финт - обмануть приложение по лицензированию, и при этом технически использовать автосайзинг NUMA
- numa.vcpu.followcorespersocket = 0 (по умолчанию)
- если установить в 1, то вернется старое поведение
* Расширенные настройки. !!! Опасно !!! Только если вы действительно понимаете что делаете
- numa.vcpu.maxPerVirtualNode = 8 (по умолчанию) - для расширения ВМ на дополнительные NUMA узлы
- numa.vcpu.preferHT = False (по умолчанию) - использовать потоки HT вместо дополнительных узлов NUMA. Для некоторых нагрузок важнее остаться в пределах одного узла.
- numa.vcpu.min = 9 (по умолчанию) - когда vNUMA начинает использоваться
- numa.autosize = False (по умолчанию) - пересчитывать топологию NUMA каждый раз при загрузке ВМ. Рекомендуется в True.
- numa.autosize.once = True (по умолчанию) - рассчитывать топологию NUMA при первой загрузке ВМ. Рекомендуется в False.
- numa.autosize.cookie = [автогенерируемое] - автоконфигурация vNUMA. 160001 = 16 сокетов, 1 ядро
- numa.autosize.vcpu.maxPerVirtualNode = [автогенерируемое] - сколько ядер на каждый узел NUMA при автосайзинге.
* Если в .vmx присутствуют numa.autosize.vcpu.maxPerVirtualNode или cpuid.coresPerSocket - автосайзинг не используется
* CPU HotAdd для виртуальной машины отключает vNUMA
* Memory HotAdd работает по разному
- HW ver 8-10 добавляет память в vNUMA node 0, что приводит к дисбалансу
- HW ver 11 балансирует память между vNUMA узлами
* Настройки vNUMA на уровне хоста в абсолютном большинстве случаев НЕ НАДО трогать.
* Перед тем как винить vNUMA проверьте все остальное.
* Не делайте 4-сокетную ВМ на 2-сокетном сервере. 

понедельник, 4 июля 2016 г.

What will virtualization look like in 10 years?

Let's define "virtualization" for the start. Virtualization is abstraction from hardware itself, hardware microarchitecture. So, when we talk about virtualizion - it's not just about server hypervisors and VMware virtual machines. Software defined storage, containers, even remote desktops and application streaming - all of these are virtualization technologies.

As of today, mid of 2016, server virtualization is almost stalled in progress. No breakthroughs for last several years. Honing hypervisors for perfection, challengers follow the lead and difference is less and less with each year. So vendors fight now in the ecosystem - management, orchestrators, monitoring tools and subsystems integration. We are now surprised when someone wants to buy a physical server and install Windows on it instead of hypervisor. Virtual machines are no longer an IT toys, it's an industrial standard. Unfortunately sensible defense
scheme (from backups to virtualization-aware firewalls) is not yet standard feature.

Software Defined Everything, or we can say Virtualized Everything, grow enormously. Most of the corporate level storage systems are almost indistinguishable from standard x86 servers except of form factor. Vendors do not use special CPUs or ASICs anymore, putting powerful multicore Xeons in controllers instead. Storage system of today is actually just a standard server with standard hardware, just with a lot if disks and some specialized software. All the storage logic, RAIDs, replication and journaling is in software now. We blur the storage/server border even more with smart cache drivers and server side flash caches. Where the server ends and storage begins?

From other side we see pure software storage systems, never sold as hardware, which do not have hardware storage heritage and architecture traits. Take any server, put some disks and RAM as you please, install an application and voila! You lack space, performance or availability? Take another server, and another and maybe a couple more. It begins to look even more interesting when we install storage software in virtual machine or even make it a hypervisor module. There are no servers and storage apart - this is a computing/storage unified system. Hyperconverged infrastructure we call it. Virtual machines are running inside, virtual desktops and servers. More than that, users can not tell if they're in dedicated VM or terminal server session or is just a streamed application. But who cares when you can connect from MacDonalds just across a globe?

Today we talk about containers, but it's not a technological breakthrough. We knew about them for years, especially ISPs and hosting providers. What will happen in near future - is a merge of traditional full virtualization and containers in a single unified hypervisor. Docker and their rivals are not yet ready for production level corporate workloads. Still a lot of questions in security and QoS, but I bet it's just a matter of couple of years. Well, maybe more than a couple, but 10 is more than enough. Where was VMware 10 years ago and where are we now in terms of server virtualization?
Network control plane is shifting more and more towards software, access level switching blurs more and more. Where is your access level when you have 100 VMs switching inside a hypervisor never reaching physical ports? The only part really left for specialized hardware is high speed core switches or ultra-low latency networks like Infiniband. But still, this is just a data plane, control plane lives in the Cloud.

Everything is moving towards the death of general OS as we know them. We don't really need an OS actually, we only need it to run applications. And applications are more and more shifting from installable to portable containers. We'll see hypervisor 2.0 as new general OS and further blur between desktop, laptop, tablet and smartphone. We still install applications, but we already store our data in the cloud. In 10 years container with application will be moving between desktop, smartphone and server infrastructure as easy as we move now virtual machines.

Some years ago we had to park floppy drive heads after we're finished, teenagers of today live with cloud, teenagers of tomorrow will have to work hard to realize what is application/data link to hardware.

понедельник, 27 июня 2016 г.

Что ждет средства виртуализации через 10 лет?

Для начала хочется определить понятие «средства виртуализации». Виртуализация по сути представляет собой абстрагирование от аппаратных средств, от их микроархитектуры. Поэтому говоря о средствах виртуализации, следует понимать, что это далеко не только серверная виртуализация и виртуальные машины VMware. Программно-определяемые СХД, контейнерные технологии, удаленные рабочие столы и потоковая доставка приложений – это тоже виртуализация.

В середине 2016 года серверная виртуализация практически остановилась в развитии. Никаких прорывных технологий уже не ожидается, постепенно уравниваются по возможностям гипервизоры. Битва между поставщиками происходит уже в средствах мониторинга и управления, интеграции со смежными подсистемами. Покупка физических серверов и установка на них скажем Windows уже вызывает удивление, это редкость. Мы уже привыкли к виртуальным машинам, это уже индустриальный стандарт. К сожалению пока еще не является индустриальным стандартом продуманная концепция защиты - начиная от правильно построенной системы резервного копирования и заканчивая умным антивирусом и файрволлами, понимающими про виртуализацию.

Все более набирает обороты концепция Software Defined Everything, программно-определяемое все или, по сути, виртуализованное все. Большинство корпоративных СХД уже практически ничем не отличаются от серверов, кроме форм-фактора исполнения. Производители уже отказались от специальных процессоров, все крутится на x86. Все больше производителей отказываются от сопроцесоров и специализированных ASIC'ов, перекладывая задачи на могучие Intel Xeon последних поколений. Современная СХД корпоративного класса уже по сути является стандартным сервером со стандартным оборудованием, просто с большим количеством жестких дисков. Вся логика в программном обеспечении. Граница между серверами и СХД размывается еще сильнее при помощи умных драйверов, управляющих содержимым кэш-памяти, и флэш-кэшами, устанавливаемыми в серверы. Где кончается сервер-потребитель и начинается СХД?

С другой стороны наступают чисто программные СХД, не имеющие архитектурного наследства аппаратных. Возьми любой сервер стандартной архитектуры, поставь столько дисков и памяти, сколько считаешь нужным, а дальше просто поставь софт в качестве обычного приложения. Не хватает производительности, пространства, отказоустойчивости? Добавь еще один сервер, потом еще один, и сколько тебе нужно. Еще интереснее становится, когда этот софт мы устанавливаем в виртуальные машины или делаем частью гипервизора. Вычислительная система и система хранения теперь неразличимы, они одно целое - гиперконвергентная система. А внутри работают виртуальные серверы и виртуальные десктопы. Причем пользователи сами не понимают, работают они в выделенной виртуальной машине или в сессии терминального сервера. На виртуальные десктопы доставляются потоковые приложения, к десктопу можно подключаться с планшета из МакДональдса или из пробки на дороге через мобильный интернет, или из гостиницы через половину земного шара.

Идет постепенное принятие всей индустрией ИТ давно известной среди хостинг-провайдеров технологии контейнерной виртуализации. В дальнейшем мы будем наблюдать слияние в единой системе и платформе как полной виртуализации, так и контейнерной. Новые и модные контейнеры Docker и сопутствующие им не готовы для работы в корпоративном секторе – недостаточно проработаны вопросы обеспечения качества обслуживания, информационной безопасности, но нет никаких сомнений в их готовности через 10 лет.
Уровень управления сетью все больше перемещается в программный, размывается сетевой уровень доступа – ну а что ему еще делать при коммутации внутри гипервизора под сотню ВМ? Единственным прибежищем аппаратных специализированных архитектур будут оставаться высокоскоростные терабитные коммутаторы уровня ядра сети или специализированные коммутаторы со сверхнизкими задержками, как например Infiniband. Но и у тех останется уровень данных и сверхскоростные матрицы коммутации, в то время как уровень управления будет жить в облаке.

Все идет к смерти ОС общего назначения, как мы их знаем. Ведь по сути нам не нужна ОС, нам нужны лишь приложения, а они все больше и больше виртуализуются и упаковываются в контейнеры. Вместо ОС нас ждет гипервизор нового поколения. Что в конечном итоге выльется в полное размытие понятия «персональный компьютер» - это будет и планшет, и десктоп, и даже смартфон. Сегодня мы все еще устанавливаем приложение и привязываем его к ОС, хотя данные все чаще храним в облаке. Но через 10 лет можно быть уверенным, что контейнер с приложением будет просто мигрировать между этими устройствами так же легко, как сейчас между серверами переезжает виртуальная машина.

Мы когда то парковали головки флоппи-дисководов после работы, сегодняшние школьники работают с облаками. Завтрашние школьники не будут понимать – как это, есть привязка приложения и данных к устройству.

среда, 22 июня 2016 г.

Дизайн VDC. Расчет системы хранения

Расчет классической СХД по производительности

Классическая СХД всегда рассчитывается по худшему варианту (worst case scenario), исключая влияние оперативного кэша и оптимизации операций.
В качестве базовых показателей производительности принимаем механическую производительность с диска (IOPSdisk):
- 7.2k – 75 IOPS
- 10k – 125 IOPS
- 15k – 175 IOPS

Далее количество дисков в дисковом пуле рассчитывается по следующей формуле: = TotalIOPS * ( RW + (1 –RW) * RAIDPen) / IOPSdisk. Где:
- TotalIOPS – суммарная требуемая производительность в IOPS с дискового пула
- RW – процентная доля операций чтения
- RAIDpen – RAID penalty для выбранного уровня RAID

Подробнее об устройстве RAID и RAID Penalty рассказывается здесь - Производительность СХД. Часть первая. и Производительность СХД. Часть вторая. и Производительность СХД. Часть третья

Исходя из полученного количества дисков рассчитываются возможные варианты, удовлетворяющие требованиям по емкости хранения, включая варианты с многоуровневым хранением.
Расчет систем с использованием SSD в качестве уровня хранения рассматривается отдельно.

Особенности расчета систем с Flash Cache

Flash Cache – общее название для всех фирменных технологий использования флэш-памяти в качестве кэша второго уровня. При использовании флэш кэша СХД как правило рассчитывается для обеспечения с магнитных дисков установившейся нагрузки, в то время как пиковую обслуживает кэш.
При этом необходимо понимать профиль нагрузки и степень локализации обращений к блокам томов хранения. Флэш кэш – технология для нагрузок с высокой локализацией запросов, и практически неприменима для равномерно нагруженных томов (как например для систем аналитики).

Расчет гибридных систем low-end / mid-range

Гибридные системы нижнего и среднего классов используют многоуровневое хранение с перемещением данных между уровнями по расписанию. При этом размер блока многоуровневого хранения у лучших моделей составляет 256 МБ. Данные особенности не позволяют считать технологию многоуровневого хранения технологией повышения производительности, как ошибочно считается многими. Многоуровневое хранение в системах нижнего и среднего классов – это технология оптимизации стоимости хранения для систем с выраженной неравномерностью нагрузки.

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

Использование SSD в многоуровневом дисковом пуле

Использование SSD в многоуровневом дисковом пуле имеет вариации, в зависимости от особенностей реализации алгоритмов флэш кэша у данного производителя.
Общая практика политики хранения для дискового пула с SSD уровнем - SSD first.
Read Only Flash Cache. Для флэш кэша только на чтение уровень хранения на SSD появляется при значительной локализации операций записи вне зависимости от кэша.
Read / Write Flash Cache. В случае с флэш кэшем на запись сначала устанавливается максимальный объем кэша, а уровень хранения на SSD появляется лишь при недостаточности размера кэша для обслуживания всей локализованной нагрузки.
Расчет производительности SSD и кэша производится каждый раз исходя из рекомендаций производителя, но всегда для наихудшего варианта.

Дизайн VDC. Расчет ресурсов и выбор архитектуры

Разделение на пулы ресурсов

После сбора всей первичной вводной информации первым шагом является группировка наборов данных и ИС в пулы, исходя из моделей угроз и требований регуляторов. Определяется вид разделения различных пулов – программно на уровне системного ПО или физически.
Примеры:
- Контур, обрабатывающий персональные данные, полностью физически отделен от остальных систем;
- Резервные копии хранятся на отдельной СХД.

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

Процессорная мощность

Абстрактные потребности в процессорной мощность виртуализованного ЦОД измеряется в количестве виртуальных процессоров (vCPU) и коэффициенте их консолидации на физических процессорах (pCPU). В данном конкретном случае 1 pCPU = 1 физическое ядро процессора (без учета Hyper-Threading). Количество vCPU суммируется по всем определенным пулам ресурсов (каждый из которых может иметь свой коэффициент консолидации).
Коэффициент консолидации для нагруженных систем получают эмпирическим путем, исходя из уже существующей инфраструктуры, либо при пилотной установке и нагрузочном тестировании. Для ненагруженных систем применяются «best practice». В частности, VMware называет средним коэффициентом 8:1.

Оперативная память

Общая потребность в оперативной памяти получается путем простого суммирования. Использование переподписки по оперативной памяти не рекомендуется.

Ресурсы хранения

Требования по ресурсам хранения получаются путем простого суммирования всех пулов по объему и производительности.
Требования по производительности выражаются в IOPS в сочетании со средним соотношением чтение/запись и при необходимости максимальной задержкой отклика.
Отдельно должны быть указаны требования по обеспечению качества обслуживания (QoS) для конкретных пулов или систем.

Ресурсы сети передачи данных

Требования по сети передачи данных получаются путем простого суммирования всех пулов пропускной способности.
Отдельно должны быть указаны требования по обеспечению качества обслуживания (QoS) и задержек (RTT) для конкретных пулов или систем.
В рамках требований к ресурсам сети передачи данных так же указываются требования по изоляции и/или шифрованию сетевого трафика и предпочтительным механизмам (802.1q, IPSec и т.д.)

Выбор архитектуры

В рамках данного руководства не рассматривается иной выбор, кроме архитектуры x86 и 100% виртуализации серверов. Поэтому выбор архитектуры вычислительной подсистемы сводится к выбору платформы серверной виртуализации, форм-фактора серверов и общих требований по конфигурации серверов.

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

Классическая архитектура подразумевает использование интеллектуальных внешних подсистем хранения и передачи данных, в то время как серверы привносят в общий пул физических ресурсов только процессорную мощность и оперативную память. В предельном случае серверы становятся полностью анонимными, не имеющими не только собственных дисков, но даже системного идентификатора. В этом случае используется загрузка ОС или гипервизора с встроенных флэш носителей либо с внешней системы хранения данных (boot from SAN).
В рамках классической архитектуры выбор между лезвиями (blade) и стоечными (rack) осуществляется прежде всего из следующих принципов:
- Экономическая эффективность (в среднем стоечные серверы дешевле);
- Вычислительная плотность (у лезвий выше);
- Энергопотребление и тепловыделение (у лезвий выше удельное на юнит);
- Масштабируемость и управляемость (лезвия в целом требует меньше усилий при больших инсталляциях);
- Использование карт расширения (для лезвий очень ограниченный выбор).

Конвергентная архитектура
(также известная как гиперконвергентная) предполагает совмещение функций обработки и хранения данных, что ведет к использованию локальных дисков серверов и как следствие отказу от форм-фактора классических лезвий. Для конвергентных систем используются либо стоечные серверы, либо кластерные системы, совмещающие в едином корпусе несколько серверов-лезвий и локальные диски.

Дизайн VDC. Конфигурация серверов и кластеров виртуализации

CPU / Memory

Для корректного расчета конфигурации нужно понимать тип нагрузки для среды или каждого из независимых кластеров.
CPU bound – среда, ограниченная по производительности процессорной мощностью. Добавление оперативной памяти ничего не изменит с точки зрения производительности (количества ВМ на сервер).
Memory bound – среда, ограниченная оперативной памятью. Большее количество оперативной памяти на сервере позволяет запустить большее количество ВМ на сервер.
GB / MHz (GB / pCPU) – среднее соотношение потребления данной конкретной нагрузкой оперативной памяти и процессорной мощности. Может использоваться для расчетов необходимого объема памяти при заданной производительности и наоборот.

Расчет конфигурации сервера

Для начала необходимо определить все виды нагрузки и принять решение о совмещении или разделении различных вычислительных пулов по различным кластерам.
Далее для каждого из определенных кластеров определяется соотношение GB / MHz при известной заранее нагрузке. Если нагрузка не известна заранее, но есть примерное понимание уровня загрузки процессорной мощности, можно использовать стандартные коэффициенты vCPU:pCPU для перевода требований пулов в физические.

Для каждого кластера сумму требований пулов vCPU делим на коэффициент:
vCPUсумм / vCPU:pCPU = pCPUсумм – требуемое количество физ. ядер
pCPUсумм / 1.25 = pCPUht – количество ядер с поправкой на Hyper-Threading
Предположим, что необходимо произвести расчет кластера на 190 ядер / 3.5ТБ ОЗУ. При этом принимаем целевую 50% загрузку процессорной мощности и 75% по оперативной памяти.


pCPU

190

CPU util

50%

Mem

3500

Mem util

75%

Socket

Core

Srv / CPU

Srv Mem

Srv / Mem

2

6

25,3

128

36,5

2

8

19,0

192

24,3

2

10

15,2

256

18,2

2

14

10,9

384

12,2

2

18

8,4

512

9,1

В данном случае всегда используем округление до ближайшего целого вверх (=ROUNDUP(A1;0)).
Из таблицы становится очевидно, что сбалансированными под целевые показатели являются несколько конфигураций серверов:
- 26 серверов 2*6c / 192 GB
- 19 серверов 2*10c / 256 GB
- 10 серверов 2*18c / 512 GB

Выбор из этих конфигураций в дальнейшем необходимо делать исходя из дополнительных факторов, как например тепловой пакет и доступное охлаждение, уже используемые серверы, или стоимость.

Особенности выбора конфигурации сервера

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

Размер домена единичного отказа.

Выбор размера сервера также осуществляется из принципа минимизации домена единичного отказа. Например, при выборе между:
- 3 x 4*10c / 512 GB
- 6 x 2*10c / 256 GB
При прочих равных необходимо выбирать второй вариант, поскольку при выходе одного сервера из строя (или обслуживании) теряется не 33% ресурсов кластера, а 17%. Точно так же вдвое снижается количество ВМ и ИС, на которых отразилась авария.

вторник, 21 июня 2016 г.

Cloud Trust.

When we talk of information security, including cloud security, most of the talk is about confidentiality. Well, as from my experience almost no one talks about 2 other parts of the triad – integrity and availability. But these attributes become crucial in cloud.

Why are we doing cloud in the first place? To cut expenses, both capital and operational – dollar saved is dollar earned. Guess what cloud provider does? The very same thing, cutting expenses as much as they could. And there is no easy answer to the question: make cloud more secure or save some money.

Let’s take an easy example, how can cloud provider protect your data confidentiality? For data at rest it’s pretty obvious answer – encryption. For data-in-flight there is no answer at all, encryption cannot protect from privileged insider – all the keys and hashes can be sniffed during live migration or through snapshotting. There are no measures to protect your data with 100% assurance, but all have costs. With the BIG providers you can be sure there are some internal security policies to prevent insider access and those who have access are not random people from the street. As cloud computing market grows we see a lot of smaller providers with nice prices for the service, but… So there are some basic questions for you provider you would really like to have an answer before moving your data:
1) Who has an access to hardware?
2) How much access do admins have?
3) Who is watching them?
4) Is there internal backup?
5) Who has an access to backups?
6) What really happens with our data when we close account?

I personally know a small company providing a very good service for accounting and supply management from the cloud. But they haven’t deleted any data in their entire history – everything is still in their databases. You closed your account 2 years ago – doesn’t matter. Data is still here.

Important part of the cloud is multitenancy – all the tenants use the very same shared hardware infrastructure, it saves money. But also it imposes new risks we never saw before cloud. Questions for provider:
1) How tenants are isolated?
2) Who grants tenant admin rights?
3) Who is watching them (both admins and tenant admins)?
4) How tenant admin is authenticated?
5) What really happens with our data when we close account?

The last question is exactly the same, but with different aspect – who ensures our data is not accessible one way or another by other tenant taking over hardware resources we used to have?
And this is an easy part, because we’re moving to integrity and availability which are most of the time considered as operations team responsibility with almost no attention from security team.

You’ve rented some VMs from the provider. How do you know where exactly data is stored and how reliable storage system is? Is it high end EMC Symmetrix system or DIY in garage 90TB storage like this one?



Most providers do not use classic corporate storage systems with known performance and proven reliability. DIY storage is way to cut really big piece of investment, but… here are 2 examples from Russian provider space:
1) “Selectel” have lost customers data several times due to problems with linux mdraid service.
2) “Cloudmouse” irreversibly lost 22 000 VMs due to problems with ceph service.

And personally I wonder – have these guys ever heard of backup? BTW have your provider heard?
Okay, I’ve scared you a little of cloud, so now let’s compare it to good old home-made IT. We’re building it for years and we know everything and control everything. Right?
98% of ITs I’ve seen – wrong. There are a lot of reasons for that, like:
1) There is just not enough qualified personnel
2) IT manager and whole IT department trying to maintain their personal importance instead of pursuing company needs
3) There were mistakes made before and company still paying for that
4) Some decisions were purely political instead of technical
5) … and this list can be 100 pages long.

So what should we do about it and what’s the magic word?

It is Trust. And particularly Cloud Trust. I’ve tried to extract the meaning of this word:
- Trust is situation when you are sure in other party words/deeds

Outside IT you gain trust, it is a process. And you gain it with time when you prove yourself trustworthy. I believe everyone agree that you should trust your cloud provider if you move your data and intellectual property to their premises. Experience is the thing that came right after it was needed.
What we do with our relations with new people and establishing if we can trust them is calling for trusted 3rd party. You cannot be sure if a man or woman right across the table is a real doctor, so you ask for diploma from university you trust.
Unfortunately in cloud provider space there is no trusted authority to certify one or another provider. There are several organizations to help us though, like global Cloud Security Alliance with ready to use questionnaires. You just take it and ask your provider to answer these questions for you.

From other side what I see – most of companies exaggerate importance of their data, because they don’t really have a clue. Netherlands police for example took a deep look into data they have. Guess what they have found – 95% of everything they have is NOT confidential. How much commercial company data is really confidential you think?

What should you do before considering cloud services.
1) Clean up a mess in your internal IT. Cloud is about automation, and when you automate the mess – you get automated mess.
2) Classify your data. There is no need in 100 different types and security classes, 3 to 5 would be just fine.
3) Start with new non-confidential data.
4) Start with new test zone in the cloud.
5) Start with secondary and support processes.
6) Deploy seasonal and peak loads in the cloud.
7) Create and test backup policy with offsite data storage, so if cloud goes down you have at least backups.

DO NOT

1) Replicate your services as they are.
2)Move everything at once, especially business critical applications.

Дизайн VDC. С чего надо начинать

Введение

Информационная система с точки зрения пользователя хорошо определяется в ГОСТ РВ 51987 - «автоматизированная система, результатом функционирования которой является представление выходной информации для последующего использования». Если рассматривать внутреннюю структуру, то по сути любая ИС является системой реализованных в коде взаимосвязанных алгоритмов. В широком понимании тезиса Тьюринга-Черча алгоритм (а сл-но ИС) осуществляет трансформацию множества входных данных в множество выходных данных.
Можно даже сказать, что в трансформации входных данных и есть смысл существования информационной системы. Соответственно ценность ИС и всего комплекса ИС определяется через ценность входных и выходных данных.
Исходя из этого проектирование должно начинаться и брать за основу данные, подстраивая архитектуру и методы под структуру и значимость данных.

Хранимые данные
Ключевым этапом подготовки к проектированию является получение характеристик всех наборов данных, планируемых к обработке и хранению. Эти характеристики включают в себя:
- Объем данных;
- Информация о жизненном цикле данных (прирост новых данных, срок жизни, обработка устаревших данных);
- Классификация данных с т.з. влияния на основной бизнес компании (то триаде конфиденциальность, целостность, доступность) вместе с финансовыми показателями (напр. стоимость утери данных за последний час);
- География обработки данных (физическое расположение систем обработки);
- Требования регуляторов по каждому классу данных (напр. ФЗ-152, PCI DSS).

Информационные системы

Данные не только хранятся, но и обрабатываются (трансформируются) информационными системами. Следующим шагом после получения характеристик данных является максимально полная инвентаризация информационных систем, их архитектурных особенностей, взаимозависимостей и требований к инфраструктуре в условных единицах к четырем видам ресурсов:
- Процессорная вычислительная мощностьl;
- Объем оперативной памяти;
- Требования к объему и производительности системы хранения данных;
- Требования к сети передачи данных (внешние каналы, каналы между компонентами ИС).
Требования при этом должны быть на каждый сервис/микросервис в составе ИС.
Отдельно необходимо отметить обязательное для корректного проектирования наличие данных по влиянию ИС на основной бизнес компании в виде стоимости простоя ИС (рублей в час).

Модель угроз

В обязательном порядке должна быть в наличии формальная модель угроз, от которых планируется защищать данные / сервисы. При этом модель угроз включает в себя не только аспекты конфиденциальности, но и целостности и доступности. Т.е. например:
- Выход из строя физического сервера;
- Выход из строя коммутатора top-of-the-rack;
- Разрыв оптического канала связи между ЦОД;
- Выход из строя оперативной СХД целиком.
В некоторых случаях модели угроз пишутся не только для инфраструктурных компонентов, но и для конкретных ИС или их компонентов, как например отказ СУБД с логическим разрушением структуры данных.
Все решения в рамках проекта по защите против не описанной угрозы являются излишними.

Требования регуляторов

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

Целевые показатели RPO / RTO

Проектирование любого вида защиты требует наличия показателей целевой потери данных и целевого времени восстановления сервиса для каждой из описанных угроз.
При этом в идеале RPO и RTO должны иметь ассоциированные стоимости потери данных и простоя в единицу времени.