DDoS-атака через социальную инженерию



TL;DR Атакующий подменяет source ip на адрес вашего сервера и триггерит автоматические абузы. В результате клиента банят на хостинге за вредоносную активность, которой не было.
Эта статья написана нашим клиентом, который перешёл к нам от крупного хостера после DDoS-атаки и любезно согласился поделиться этой историей.

Расскажу про удивительно коварный способ DDoS-атак, с которым я раньше не сталкивался. Коварство заключается в том, что на сам сервер жертвы не выполняется никакой атаки. Вместо этого, злоумышленник провоцирует срабатывание сторонних систем обнаружения атак, заставляя генерировать совершенно настоящие жалобы (в простонародье «абузы») на ваш сервер.

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

В статье подробно разбирается этот вид атаки в реальном кейсе.

Хронология событий
Я держал несколько личных проектов на VPS-серверах у одного известного хостера. Однажды мне пришло от него такое письмо:
#9042382: ToS Violation — Malicious Activity
Hello,
We have received a report of malicious activity originating from your server XXXX. We ask that you investigate this matter as soon as you are able. Once you have completed your investigation, kindly reply to this ticket with the answers to the following questions:
Reported-From: abuse-out@checkdomain.de
Category: info
Report-Type: info
Service: different services
Version: 0.1
User-Agent: Checkdomain Express 0.19
Date: Fri, 26 May 2018 19:25:19 +0200
Source-Type: ipv4
Source: my-server-ip-xx-xxx
Port: dif.
Report-ID: dih3cefnp@checkdomain.de
Schema-URL: http://www.blocklist.de/downloads/schema/info_0.1.1.json
Attachment: text/plain

DETAILS ZU DEN ATTACKEN/STÖRUNGEN | DETAILS OF THE ATTACKS
(letzten 60 Tage / max. 100 St.) | (last 60 days / max. 100 hits)
 portflood: syn | | standby.checkdomain.de |
VORHERIGE SPERREN DER IP-NUMMER | BANNED HISTORY OF THIS IP-NUMBER
my-server-ip-xxx-xxx-xxx: this ip-number was never banned before

AUZUG AUS SERVERLOGDATEI | EXCERPT FROM SERVER LOGFILE
tcp 0 0 85.10.207.190:80 my-server-ip-xx-xxx:41667 SYNRECV - 
tcp 0 0 85.10.207.190:80 my-server-ip-xx-xxx:46208 SYNRECV -
tcp 0 0 85.10.207.190:80 my-server-ip-xx-xxx:13000 SYNRECV -
tcp 0 0 85.10.207.190:80 my-server-ip-xx-xxx:39104 SYNRECV -
tcp 0 0 85.10.207.190:80 my-server-ip-xx-xxx:55348 SYNRECV -
tcp 0 0 85.10.207.190:80 my-server-ip-xx-xxx:37266 SYNRECV -
tcp 0 0 85.10.207.190:80 my-server-ip-xx-xxx:60684 SYNRECV -
tcp 0 0 85.10.207.190:80 my-server-ip-xx-xxx:63878 SYNRECV -
tcp 0 0 85.10.207.190:80 my-server-ip-xx-xxx:50445 SYNRECV -
tcp 0 0 85.10.207.190:80 my-server-ip-xx-xxx:56215 SYNRECV -

Где my-server-ip-xx-xxx это IP-адрес сервера.

В нем хостер пересылает мне жалобу, поступившую на его ящик abuse@, и настойчиво просит прекратить вредоносную активность, иначе я буду заблокирован. В приложенном логе виден список TCP-подключений к 80 (HTTP) порту в состоянии SYN RECEIVED. То есть с моего сервера идёт SYN-флуд на чей-то веб-сервер.

Первая мысль — меня взломали и с моего сервера идёт SYN-флуд. В Linux есть ограничения на управление сокетами с правами обычного пользователя и посылать только SYN-пакеты (без установки полноценного TCP-соединения) можно только имея привилегии root. А это значит, что взломали полностью.

В панике бегу на сервер искать вредоносный процесс. Проверяю top, ss, lsof и ничего подозрительного не вижу. Первичный вывод: «ужас, наверное залили настолько крутой руткит, который прячет вирус на уровне ядра от всех системных утилит!». В процессе исследований выясняется, что нагрузка на сервер никак не изменилась, по графикам в панели хостера трафик на интерфейсе остается прежним.

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

Выглядит это примерно так, где my-server-ip-xx-xxx адрес моего сервера:
IP 85.10.207.190.http > my-server-ip-xx-xxx.8389: Flags [R]
IP 85.10.207.190.http > my-server-ip-xx-xxx.8389: Flags [R]
IP 85.10.207.190.http > my-server-ip-xx-xxx.8389: Flags [R]
IP adsl-070-154.sip.pns.bellsouth.net.http > my-server-ip-xx-xxx.8389: Flags [R]
IP adsl-070-154.sip.pns.bellsouth.net.http > my-server-ip-xx-xxx.8389: Flags [R]
IP adsl-070-154.sip.pns.bellsouth.net.http > my-server-ip-xx-xxx.8389: Flags [R]


Было очевидно, что это аномалия, так как больше никакого обмена с этими серверами не было и почему они шлют пакет закрытия соединения, мне было неясно.
На этом моменте опытные админы сразу бы всё поняли, но мы разберём всё на пальцах

Как это работает
Входящие RST-пакеты это ответы на попытки установить TCP-соединение на закрытый порт. При этом от моего сервера никакого исходящего трафика в сторону серверов, посылающих RST, нет. Это значит, что атакующий подменяет исходящий адрес на мой и генерирует трафик, похожий на DDoS-атаку. Но так как единственное, что может атакующий, это послать исходящий пакет, все ответы от серверов приходят на мой сервер.

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

В моем случае атакующий не ставил целью исчерпать канал сервера-жертвы. Его активность была совершенно незаметна на графиках потребления канала. Главной его целью было спровоцировать системы автоматического уведомления о сетевых атаках, которые пошлют письмо с жалобой на abuse-адрес, указанный в whois подсети моего провайдера. Это умеют делать системы обнаружения и предотвращения вторжений (Intrusive Prevent/Detect System), такие как Snort и Suricata.

В результате хостер получает абсолютно настоящее письмо от легитимных компаний, в котором содержится жалоба на мою вредоносную активность и даже логи в них настоящие. При этом атакующему не нужен большой канал, так как он заранее знает адреса серверов, на которых установлены IDS/IPS-системы и минимально необходимое число пакетов, чтобы сработала автоматическая жалоба.

Единственной трудностью для атакующего является поиск сервера, разрешающего подмену исходящих IP-адресов в пакетах. Все нормальные хостеры блокируют такие пакеты. Существует только два типа хостинга, позволяющего клиентам подменять исходящий IP: либо очень безграмотно настроенный, либо специально созданный для кибер-криминала.

Проверяем возможность подмены IP-адреса
Советую вам проверить своего хостера на возможность подмены исходящего IP. Для этого потребуется два сервера, один для приёма трафика, другой для отправки.

На стороне принимающего сервера запустим логирование входящего трафика. В качестве фильтра укажем редкий порт, на котором в обычное время не должно быть трафика:
tcpdump -i any port 9912

На проверяемом сервере сгенерируем пакет с подменой исходящего IP-адреса на 1.1.1.1, направленный на порт 9912. Для этого используем крутую утилиту nping от разработчиков nmap. Она позволяет генерировать любые нестандартные пакеты на уровне L2 и L3.
nping --tcp -p 9912 -S 1.1.1.1 receiver-server.com

receiver-server.com — адрес слушающего сервера, на котором запущен tcpdump
1.1.1.1 — подменяемый исходящий адрес
9912 — удалённый порт

Если на стороне receiver-server.com вы увидите пакет, пришедший от имени 1.1.1.1, значит ваш провайдер позволяет подменять исходящий IP-адрес. Это повод сообщить ему о проблемах в настройке сетевого оборудования. Зачастую такой проблемой страдают домашние интернет-провайдеры.

Глупая техподдержка
Разобравшись в причинах жалоб, я подробно все изложил хостеру:
Hello,
I finally understand what happened.

They spoof my IP address and DDoS random hosts using my address as source address. So victims generate automatic abuse reports to my hosting providers.

You can see on abuse log that connections are only in SYN_RECV state (no full TCP-connection established) because they can send only one packet using spoofed IP and can't finish TCP-handshake.
I can prove this. There are many TCP RST incoming packets coming right now to my server from hosts whom I never sent any packets.

You can check it right now by running:

tcpdump -i eth0 «tcp[tcpflags] & (tcp-rst) != 0»

You will see that many RST packets came from hosts to which I've never sent any data.
This proves that attacker is spoofing my IP-address to compromise me and generate abuses.
Тогда мне казалось, что любой квалифицированный инженер техподдержки разберётся в ситуации и вопрос будет закрыт. Но вместо этого они требовали от меня проверить сервер антивирусом или полностью переустановить ОС. Пока мы переписывались с техподдержкой, абузы продолжали поступать и через сутки меня забанили.

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

https://vdsina.ru

Public Cloud, Keystone API upgrading from v2 to v3



Для того, чтобы предложить Вам самые последние возможности нашего решения Public Cloud, нам нужно будет обновлять API, используемый для заказа ключевой компонент OpenStack: Keystone.

Напомним, что Keystone является аутентификация и авторизация API, который управляет инфраструктурой Public Cloud.

Когда обновление происходит?
С 01 октября 2019 года, все файлы Open-RC будет генерироваться с версией 3.0 API Keystone для панели управления OVHcloud, OpenStack Horizon, и API.

24 марта 2020 года, мы будем отключить версии 2.0, оставив только версии 3.0 включены.

Если вы по — прежнему генерировать вызовы через Keystone 2.0 API, мы рекомендуем обновить свои развертывания сценариев при первой возможности. Мы также рекомендуем проверять, что ваши сторонние приложения используют Keystone версии 3.0.

Пожалуйста, нажмите на следующую ссылку, чтобы просмотреть список вызовов, которые больше не будут быть поддержаны Keystone 2,0: auth.cloud.ovh.net/v2.0/

Они будут заменены: auth.cloud.ovh.net/v3/

Для получения дополнительной информации о версии 3.0, пожалуйста, прочитайте документацию здесь и рекомендация здесь.
docs.openstack.org/api-ref/identity/v3/index.html
docs.openstack.org/keystone/pike/contributor/http-api.html

Любителям красного — серверы AMD Ryzen уже в продаже




Продажи серверов на процессорах AMD Ryzen стартовали! К заказу доступны конфигурации на базе Ryzen 7 3700X (8 ядер) и Ryzen 9 3900X (12 ядер):
  • до 6 накопителей на сервер,
  • поддержка NVMe,
  • объём оперативной памяти до 128 Гб.
На прошлой неделе мы открыли предзаказ ограниченной партии серверов с AMD, поэтому на момент официального старта продаж часть их уже раскупили. На сегодняшний день осталось всего 17 серверов.

Процессоры AMD Ryzen построены на новой архитектуре Zen 2, обладают большим объёмом кэш-памяти и характеризуются высокой тактовой частотой и ускоренной передачей данных между ядрами в кристалле.

По цене сопоставимы с Intel Xeon E и Core i9, а по характеристикам обгоняют более дорогие Xeon E5. Посмотреть результаты тестирования.

https://firstdedic.ru

Традиционно мы протестировали серверы на новых процессорах

Традиционно мы протестировали серверы на новых процессорах — в этот раз AMD Ryzen 7 3700Х и AMD Ryzen 9 3900Х, и сравнили показатели с результатами тестирования Intel Core i9-9900k, которые часто называют их главными конкурентами. В тестировании также участвовали три процессора Intel Xeon: два из линейки E5 — более дорогие, но близкие по характеристикам и сопоставимые по цене E-2236.



Тесты, которые использовали:
  • Sysbench — пакет тестов для оценки производительности разных подсистем компьютера: процессор, оперативная память, накопители данных. Тест многопоточный. Чем выше показатель, тем лучше. Замеряли количество операций, выполняемых процессором за секунду.
  • Geekbench — пакет тестов, который показывает индекс производительности для однопоточного и многопоточного режима. Единицы измерения: абстрактные «попугаи». Чем больше «попугаев», тем лучше.




АМD Ryzen уступает только по результатам однопоточных тестов Geekbench свежему Intel Xeon E-2236 и i9-9900k, но обгоняет их в многопоточном тесте. Так как большинство «боевых» задач сегодня обрабатывается в многопоточном режиме, серверы AMD Ryzen обладают весьма серьезным преимуществом в плане производительности.

https://firstdedic.ru

Тук-тук, Нео! Красная «таблетка» ждет тебя на FirstDEDIC



Стартовали продажи ограниченной партии выделенных серверов с AMD у наших партнёров! К заказу доступны конфигурации на базе Ryzen 7 3700X (8 ядер) и Ryzen 9 3900X (12 ядер).

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

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

https://firstdedic.ru

А вы хорошо вели себя в этом году?



Но облачный Дед Мороз не оставит никого без подарков!
Держите промокод на 3000 ₽: NY2020
Чтобы волшебство случилось и вы получили бонусные рубли, нужно пополнить счет до конца декабря и сообщить промокод нашим эльфам

Скорее успевайте!
mcs.mail.ru/app/auth/

Уведомление оплата услуг



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

График работы компании в январе 2020 года:
  • Техническая поддержка — круглосуточно, все дни. +78124907091 +78002220019
  • Продажи и обслуживание — 1, 2, 3, 4, 5, 6, 7, 8 января выходной день, 9 января — первый рабочий день.

С уважением, команда дата-центра Миран.
miran.ru

Сбор ответов на письма в администрацию Президента РФ



Ранее мы публиковали призыв для всех, кто оказался очевидцем данных событий, написать письмо в администрацию Президента РФ. Просим присылать полученные ответы на адрес: ihorproject@yandex.ru

Это очень важно для скорейшего решения возникшей ситуации!

Merry Christmas and Happy New Year 2020!



Мгновенные Выделенные серверы
Чикаго, Даллас, Нью-Йорк, Майами, Лос-Анджелес, Санта-Клара, Сиэтл, Торонто, Франкфурте

Возьмите 50% от 1-го месяца на любой момент серверов
Предложение действует до 31 декабря 2019 года
Ваш код: NY20-1-50

Возьмите 30% от 3-х месяцев на любой момент серверов
Предложение действует до 31 декабря 2019 года
Ваш код: NY20-3-30
Вы должны заплатить за 3 месяца вперед.

FYI: Новые конфигурации:
  • E3-1240v2, 16GB, 480GB SSD, HDD 4TB, IPMI, 200M — $ 69 / мес.
  • 1xE5-2650v2, 64GB, 1x960GB SSD или 2x480GB SSD, IPMI, 300M — $ 99 / мес.
  • 2xE5-2650v2, 64GB, 2x960GB SSD, IPMI, 300M — $ 139 / мес.
  • 2xE5-2650v2,128GB, 2x960GB SSD, IPMI, 500M — $ 189 / мес.
  • 2xE5-2650v2, 256GB, 2x960GB SSD, IPMI, 500M — $ 229 / мес.
  • 2xE5-2650v2, 256GB, 2x1.92TB SSD, IPMI, 500M — $ 259 / мес.
  • 2xE5-2650v2, 256GB, 2x3,84TB SSD, IPMI, 500M — $ 329 / мес.

Нет платы за установку. Месяц в месяц. Доставка в течение 15 минут, 24/7. Linux автоматического развертывание.
350+ Серверы Мгновенные доступны в 15 минут после оплаты 24/7

В следующем году мы будем добавлять новые места:
  • США: Атлант, Ashburn, Денвер
  • Европа: Амстердам, Париж, Лондон
  • Азия: Сингапур, Гонконг, Токио

От нашей команды к вашим, у счастливого Рождества и процветания в новом году. Мы ценим ваше дело.
gthost.com/instant-servers/

Как наши экземпляры Public Cloud получают выгоду от архитектуры NVMe

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



В OVHcloud мы любим прагматичные решения. В этом духе несколько месяцев назад мы начали предлагать графические процессоры в нашем публичном облаке, то есть предоставлять виртуальные машины с графическими процессорами. Но виртуализация GPU в настоящее время не может обеспечить требуемый уровень производительности, поэтому мы решили связать GPU напрямую с виртуальными машинами, избегая уровня виртуализации. KVM — гипервизор нашего Public Cloud — использует libvirt, которая имеет функцию PCI passthrough, которая оказалась именно тем, что нам нужно для этой цели.


Чтобы обеспечить наилучшую производительность хранилища, мы работали с рядом наших клиентов на PoC, который использовал ту же функцию PCI Passthrough, чтобы включить самое быстрое устройство хранения в наши экземпляры Public Cloud: карты NVMe с 1,8 ТБ места.

Когда дело доходит до хранения и данных о клиентах, мы должны быть уверены, что когда клиент удаляет и выпускает экземпляр, мы должным образом очищаем устройство, прежде чем передать его другому экземпляру. В этом случае мы установили патч OpenStack Nova, чтобы полностью стереть устройство. Короче говоря, когда клиент выпускает экземпляр IOPS, он помещается в карантин, где внутренние инструменты будут запускать необходимые действия по удалению на устройстве. После того, как это сделано и проверено, устройство и слот экземпляра возвращаются в Nova как «доступные».


Вы говорите быстро, но как быстро?
Давайте рассмотрим некоторые конкретные примеры и потратим время, чтобы оценить потрясающую скорость этих новых экземпляров! Мы будем использовать самую большую модель экземпляра и запустим стенд ввода-вывода на RAID 0. Таким образом, мы увидим, каковы ограничения, когда мы нацелены на самое быстрое решение для хранения данных на простом экземпляре Public Cloud.

Сначала создайте экземпляр i1-180, используя CLI OpenStack.
$ openstack server create --flavor i1-180 --image "Ubuntu 19.04" \
  --net Ext-Net --key-name mykey db01

Проверьте устройства NVMe на экземпляре.
$ lsblk | grep nvme
nvme2n1 259:0    0  1.8T  0 disk
nvme1n1 259:1    0  1.8T  0 disk
nvme0n1 259:2    0  1.8T  0 disk
nvme3n1 259:3    0  1.8T  0 disk

У нас есть четыре устройства NVMe, поэтому давайте создадим RAID 0 с ними.
$ mdadm --create /dev/md1 --level 0 --raid-devices 4 \
  /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started

Теперь мы отформатируем рейдовое устройство.
$ mkfs.xfs /dev/md1
meta-data=/dev/md1               isize=512    agcount=32, agsize=58601344 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=0, rmapbt=0, reflink=0
data     =                       bsize=4096   blocks=1875243008, imaxpct=5
         =                       sunit=128    swidth=512 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

После монтирования файловой системы в / mnt мы готовы запустить тест.

Читать тест
Мы начнем с теста чтения, используя блоки 4k, и, поскольку у нас 32 vCores для этой модели, мы будем использовать 32 задания. Пойдем!
$ fio --bs=4k --direct=1 --rw=randread --randrepeat=0 \
  --ioengine=libaio --iodepth=32 --runtime=120 --group_reporting \
  --time_based --filesize=64m --numjobs=32 --name=/mnt/test
/mnt/test: (g=0): rw=randread, bs=® 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=32
[...]
fio-3.12
Starting 32 processes
Jobs: 32 (f=32): [r(32)][100.0%][r=9238MiB/s][r=2365k IOPS][eta 00m:00s]
/mnt/test: (groupid=0, jobs=32): err= 0: pid=3207: Fri Nov 29 16:00:13 2019
  read: IOPS=2374k, BW=9275MiB/s (9725MB/s)(1087GiB/120002msec)
    slat (usec): min=2, max=16031, avg= 7.39, stdev= 4.90
    clat (usec): min=27, max=16923, avg=419.32, stdev=123.28
     lat (usec): min=31, max=16929, avg=427.64, stdev=124.04
    clat percentiles (usec):
     |  1.00th=[  184],  5.00th=[  233], 10.00th=[  269], 20.00th=[  326],
     | 30.00th=[  363], 40.00th=[  388], 50.00th=[  412], 60.00th=[  437],
     | 70.00th=[  465], 80.00th=[  506], 90.00th=[  570], 95.00th=[  635],
     | 99.00th=[  775], 99.50th=[  832], 99.90th=[  971], 99.95th=[ 1037],
     | 99.99th=[ 1205]
   bw (  KiB/s): min=144568, max=397648, per=3.12%, avg=296776.28, stdev=46580.32, samples=7660
   iops        : min=36142, max=99412, avg=74194.06, stdev=11645.08, samples=7660
  lat (usec)   : 50=0.01%, 100=0.02%, 250=7.41%, 500=71.69%, 750=19.59%
  lat (usec)   : 1000=1.22%
  lat (msec)   : 2=0.07%, 4=0.01%, 10=0.01%, 20=0.01%
  cpu          : usr=37.12%, sys=62.66%, ctx=207950, majf=0, minf=1300
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0%
     issued rwts: total=284924843,0,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=32
 
Run status group 0 (all jobs):
   READ: bw=9275MiB/s (9725MB/s), 9275MiB/s-9275MiB/s (9725MB/s-9725MB/s), io=1087GiB (1167GB), run=120002-120002msec
 
Disk stats (read/write):
    md1: ios=284595182/7, merge=0/0, ticks=0/0, in_queue=0, util=0.00%, aggrios=71231210/1, aggrmerge=0/0, aggrticks=14348879/0, aggrin_queue=120, aggrutil=99.95%
  nvme0n1: ios=71231303/2, merge=0/0, ticks=14260383/0, in_queue=144, util=99.95%
  nvme3n1: ios=71231349/0, merge=0/0, ticks=14361428/0, in_queue=76, util=99.89%
  nvme2n1: ios=71231095/0, merge=0/0, ticks=14504766/0, in_queue=152, util=99.95%
  nvme1n1: ios=71231096/4, merge=0/1, ticks=14268942/0, in_queue=108, util=99.93%

2,370 тыс. Операций ввода-вывода в секунду Это потрясающие фигуры, не так ли?

Написать тест
Готов к тесту записи?
$ fio --bs=4k --direct=1 --rw=randwrite --randrepeat=0 --ioengine=libaio --iodepth=32 --runtime=120 --group_reporting --time_based --filesize=64m --numjobs=32 --name=/mnt/test
/mnt/test: (g=0): rw=randwrite, bs=® 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=32
[...]
fio-3.12
Starting 32 processes
Jobs: 32 (f=32): [w(32)][100.0%][w=6702MiB/s][w=1716k IOPS][eta 00m:00s]
/mnt/test: (groupid=0, jobs=32): err= 0: pid=3135: Fri Nov 29 15:55:10 2019
  write: IOPS=1710k, BW=6680MiB/s (7004MB/s)(783GiB/120003msec); 0 zone resets
    slat (usec): min=2, max=14920, avg= 6.88, stdev= 6.20
    clat (nsec): min=1152, max=18920k, avg=587644.99, stdev=735945.00
     lat (usec): min=14, max=18955, avg=595.46, stdev=736.00
    clat percentiles (usec):
     |  1.00th=[   21],  5.00th=[   33], 10.00th=[   46], 20.00th=[   74],
     | 30.00th=[  113], 40.00th=[  172], 50.00th=[  255], 60.00th=[  375],
     | 70.00th=[  644], 80.00th=[ 1139], 90.00th=[ 1663], 95.00th=[ 1991],
     | 99.00th=[ 3490], 99.50th=[ 3949], 99.90th=[ 4686], 99.95th=[ 5276],
     | 99.99th=[ 6521]
   bw (  KiB/s): min=97248, max=252248, per=3.12%, avg=213714.71, stdev=32395.61, samples=7680
   iops        : min=24312, max=63062, avg=53428.65, stdev=8098.90, samples=7680
  lat (usec)   : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.86%, 50=11.08%
  lat (usec)   : 100=15.35%, 250=22.16%, 500=16.34%, 750=6.69%, 1000=5.03%
  lat (msec)   : 2=17.66%, 4=4.38%, 10=0.44%, 20=0.01%
  cpu          : usr=20.40%, sys=41.05%, ctx=113183267, majf=0, minf=463
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,205207842,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=32
 
Run status group 0 (all jobs):
  WRITE: bw=6680MiB/s (7004MB/s), 6680MiB/s-6680MiB/s (7004MB/s-7004MB/s), io=783GiB (841GB), run=120003-120003msec
 
Disk stats (read/write):
    md1: ios=0/204947351, merge=0/0, ticks=0/0, in_queue=0, util=0.00%, aggrios=0/51301962, aggrmerge=0/0, aggrticks=0/27227774, aggrin_queue=822252, aggrutil=100.00%
  nvme0n1: ios=0/51302106, merge=0/0, ticks=0/29636384, in_queue=865064, util=100.00%
  nvme3n1: ios=0/51301711, merge=0/0, ticks=0/25214532, in_queue=932708, util=100.00%
  nvme2n1: ios=0/51301636, merge=0/0, ticks=0/34347884, in_queue=1089896, util=100.00%
  nvme1n1: ios=0/51302396, merge=0/0, ticks=0/19712296, in_queue=401340, util=100.00%


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

Конечно, мы представляем оптимальный сценарий для этого примера. RAID 0 изначально опасен, поэтому любой сбой на одном из устройств NVMe может повредить ваши данные. Это означает, что вы обязательно должны создавать резервные копии для ваших важных данных, но это само по себе открывает много новых возможностей. Так что мы на 100% уверены, что ваши базы данных полюбят эти экземпляры! Вы можете найти более подробную информацию о них на нашем веб-сайте Public Cloud.
www.ovh.ie/public-cloud/iops/