Плюсы:
- 4 ядра
- 2 гигабайта оперативки
- 50 гигабайт SSD диск
- bare-metal! (то есть, нет никаких, даже чисто теоретических накладных расходов на виртуализацию)
- за все это всего 3 евро в месяц! Очень дешево!
Но есть особенность: это ARM процессор. Да-да! Это 4-ядерный ARM процессор.
Первые шаги
Зарегался, скормил им номер карточки. Тут все ОК, я не парюсь.
Выбрал ОС. Есть три версии Ubuntu, две версии Debian, и еще несколько разных дистрибутивов. Я выбрал Ubuntu 14.04 — то, что хорошо знаю.
Update: Список доступных ОС: Gentoo, ubuntu 12.04, ubuntu 14.04, ubuntu 15.04, archlinux, fedora 22, openSUSE 13.2, Alpine Linux 3.2, Debian Jessie (8.1), Debian Wheezy (7.8).
Update2: Спасибо пользователю MrFrizzy увидел, что у них можно инстанс из докер образа. Можно использовать образы из ImageHub или загрузить свой.
Стартанул новый инстанс. В отличие от, например, Digital Ocean, здесь нельзя сделать SSH по паролю, только по ключу. Сразу вызывает уважение. Это идеологически ближе к AWS, но ключ я здесь генерирую сам у себя (AWS умеет генерить на своей стороне). Когда я зашел туда обнаружил в домашней папке рута файлик pw с его паролем в системе. ОК, Бог с ним.
Но в настройках SSH демона логин по паролю (параметр PasswordAuthentication) был разрешен! Что я считаю довольно существенно дырой. Как-то это выглядит сыро.
Доступ по ssh к этому инстансу разрешен для пользователя root, что я считаю минусом, но не большим. Точно также сделано на Digital Ocean, но на AWS используется пользователь ubuntu, который добавлен в sudoers на выполнение всех административных функций без пароля. Мне такая схема кажется привычней. Но, на самом деле, это уже дело вкуса.
Кстати, дата-центр расположен во Франции. Пинг от меня около 52мс. Для меня нормально.
Железо
Что там за процессор?
Processor : Marvell PJ4Bv7 Processor rev 2 (v7l) processor : 0 BogoMIPS : 1332.01 processor : 1 BogoMIPS : 1332.01 processor : 2 BogoMIPS : 1332.01 processor : 3 BogoMIPS : 1332.01 Features : swp half thumb fastmult vfp edsp vfpv3 tls CPU implementer : 0x56 CPU architecture: 7 CPU variant : 0x2 CPU part : 0x584 CPU revision : 2 Hardware : Online Labs C1 Revision : 0000 Serial : 0000000000000000
Итак, у меня в распоряжении 32 битный ARM v7 процессор. Насчет 4 ядер — истинная правда. 1332 богомипс… ну… Это близко к какому нибудь Pentium III/666. На микроинстансе AWS, например, 3591 могомипс, к тому же там 64 битный процессор и ОС.
То есть, потенциально, 4*1332=5328, будет быстрее, чем микроинстанс, даже в прыжке. Микроинстанс AWS, это, как известно, это burstable инстанс. То есть, он может давать большую производительность в течение короткого времени. Насколько я понимаю, как раз 3591 он мне будет давать в течение короткого времени. А потом будет тормозить. У меня нет точных цифр насколько сильно будет тормозить, но субъективные ощущения — в несколько раз.
Еще информация о системе:
# uname -a Linux scw-b715a9 3.2.34-30 #17 SMP Mon Apr 13 15:53:45 UTC 2015 armv7l armv7l armv7l GNU/Linux
Почти ничего нового я не узнал.
Еще посмотрим на память.
MemTotal: 2072392 kB MemFree: 1288544 kB Buffers: 60532 kB Cached: 664280 kB SwapCached: 0 kB Active: 383292 kB Inactive: 352528 kB Active(anon): 11032 kB Inactive(anon): 7452 kB Active(file): 372260 kB Inactive(file): 345076 kB Unevictable: 0 kB Mlocked: 0 kB HighTotal: 1269756 kB HighFree: 592840 kB LowTotal: 802636 kB LowFree: 695704 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 16 kB Writeback: 0 kB AnonPages: 11008 kB Mapped: 4988 kB Shmem: 7476 kB Slab: 40676 kB SReclaimable: 26164 kB SUnreclaim: 14512 kB KernelStack: 568 kB PageTables: 296 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 1036196 kB Committed_AS: 55844 kB VmallocTotal: 122880 kB VmallocUsed: 168 kB VmallocChunk: 122696 kB
Ну что же, реально 2 гигабайта, не обманули. Ну и ядро в памяти занимает несколько меньше, чем я привык в последнее время на x86-64 линюксах.
Тесты
Update5: По совету в комментариях провел тесты. Насколько я понимаю, dd не очень хороший тест для IOPS, но привожу здесь.
10000+0 records in 10000+0 records out 10485760000 bytes (10 GB) copied, 95.602 s, 110 MB/s
10000+0 records in 10000+0 records out 10485760000 bytes (10 GB) copied, 101.59 s, 103 MB/s
Большими кусками прокачивать данные не сложно. Уменьшаю блок до 4к.
2560000+0 records in 2560000+0 records out 10485760000 bytes (10 GB) copied, 92.5033 s, 113 MB/s
2560000+0 records in 2560000+0 records out 10485760000 bytes (10 GB) copied, 98.951 s, 106 MB/s
Думаю, что ~100 MB это я уперся в гигабитный сетевой интерфейс. Еще провел тест с 1к блоком.
10240000+0 records in 10240000+0 records out 10485760000 bytes (10 GB) copied, 131.106 s, 80.0 MB/s
10240000+0 records in 10240000+0 records out 10485760000 bytes (10 GB) copied, 150.614 s, 69.6 MB/s
Здесь падение скорости уже заметно. Но IOPS все равно очень большой. Не уверен, что ограничение диска, возможно, ограничение, опять-же, сетевого интерфейса. Но в целом все выглядит весьма неплохо.
CPU model : Number of cores : CPU frequency : MHz Total amount of ram : 2023 MB Total amount of swap : 0 MB System uptime : 2 days, 10:11, Download speed from CacheFly: 71.8MB/s Download speed from Coloat, Atlanta GA: 3.96MB/s Download speed from Softlayer, Dallas, TX: 2.97MB/s Download speed from Linode, Tokyo, JP: 1.41MB/s Download speed from i3d.net, Rotterdam, NL: 27.7MB/s Download speed from Leaseweb, Haarlem, NL: 30.1MB/s Download speed from Softlayer, Singapore: 1.47MB/s Download speed from Softlayer, Seattle, WA: 2.39MB/s Download speed from Softlayer, San Jose, CA: 2.32MB/s Download speed from Softlayer, Washington, DC: 3.69MB/s I/O speed : 102 MB/s
Софт
А как развернуть на нем свои проекты?
А давайте попробуем docker... Здесь меня ждало разочарование. Он говорит, что работает только на 64 битных системах. Хотя у меня сомнения, что он вообще умеет работать на ARM. Но, по крайней мере, ошибку он мне вывалил, именно про 64 бита. Вообщем, отпадает.
Update3: Спасибо всем, кто отписал в комментарии ( MrFrizzy, alexac, WGH). На самом деле, нельзя установить докер тем путем, что рекомендуется самим докером: docs.docker.com/linux/step_one. Из репозитариев Убунты он ставится номрально, но там версия 1.4, что не применимо. Зато можно использовать докер образы при старте инстанса.
Другой вариант, который я ранее несколько раз использовал для своих pet проектов — bitnami. Он, конечно-же тоже не поддерживает ARM. Тоже отпадает.
Придется все ставить самому…
Ставлю из репозитария nginx, php5-fpm, mysql-server. Все нашлось сразу, все заработало.
Oracle java8 для ARM процессора из репозитария webupd8team/java тоже поставилась и заработала. На самом деле, для текущих проектов java мне не нужна. Но на будущее проверить, хотя бы ее наличие было необходимо.
Выводы
Облачный хостинг на ARM процессорах существует! И с первого сентября это очень дешево. Конечно, еще хочется погонять реальный сайт, под какой нибудь известной CMS под нагрузкой… Но это не сейчас. Еще тесты такой же системы можно посмотреть в этой статье. Они, правда, тоже обещали какой-то реальный тест, но так и не сделали.
Комментарии (53)
ivlis
03.09.2015 17:48+1Очень интересует IO к диску.
risik
03.09.2015 17:55Меня он тоже интересует! :)
Но я не большой спец по таким тестам. Если подскажете, относительно простой вараинт теста. Желательно, заскриптованный, то сделаю.HangGlider
04.09.2015 14:24ubuntu@instantcloud:~$ sudo dd if=/dev/nbd0 of=/dev/null bs=1M count=10000
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 90.492 s, 116 MB/s
Для сравнения:
— cтарый m1.small на амазоне отдает 36.4 MB/s
— новый под wmware vCloud у одного россйского хостера 238 MB/skingpin
04.09.2015 16:24Тогда уж.
sudo dd if=/dev/zero of=bigfile bs=1M count=10000 conv=fsync
Вообще же, раз на то пошло, лучше.
wget -O- https://freevps.us/downloads/bench.sh | bash
bolnikh
03.09.2015 18:07А диском я один пользуюсь? Или это сетевой диск в общем доступе?
risik
03.09.2015 18:14Сетевой в общем доступе. Я понимаю, что Вас интересует реальный IOps. :)) Но таких данных у меня пока нет.
По дефолту (в 3 евро/месяц за инстанс) доступно 50ГБ. Можно попросить больше за дополнительную плату.
beemaster
03.09.2015 18:24Это чудо можно использовать в качестве Open VPN сервера?
risik
03.09.2015 19:13Не вижу причины, почему бы нет. Во всяком случае openvpn сервер в репах убунты есть. :)
ivlis
03.09.2015 20:27Конечно можно, у меня свой домашний VPN сервер на arm
MrFrizzy
03.09.2015 20:43Легальная сторона вопроса:
К моему удивлению, я не нашел у них в Terms of services прямого запрета на публичный vpn хостинг, что обычно присутствует у большинства провайдеров. Правда, читал я по диагонали.
С другой стороны, компания подпадает под юрисдикцию Франции, в коей законы достаточно нелояльные по отношению к торентам и прочим радостям интернет гиков. И соглашение просто пестрит ссылками на законы…
А технически — да, без проблем поднять можно. Тем более, там не нужно слезно просить поддержку включить модули ядра tun\tap, как в случае openvz хостинга =)ivlis
03.09.2015 20:44Так, а зачем вам публичный?
MrFrizzy
03.09.2015 20:58Звучит как допрос =)
Лично мне — незачем, но само наличие такого пункта считаю показательным.
Ну и на перспективу поднять себе и друзьям без постоянной тревоги о том, кто куда сходил и что потом за это будет…
Из праздного любопытства внутреннего параноика было бы интересно, на чем хостятся сервера vpn.ccrypto.org…
А у scaleway прямо на гитхабе есть официальный docker image с openvpn
beemaster
04.09.2015 11:02Интересно, в самом худшем случае, скорее всего, просто забанят аккаунт. Если вы гражданин другого государства и не проживаете во Франции, кому нужно будет с этим возиться? Из-за торрентов то.
risik
03.09.2015 19:12Не вижу причины, почему бы нет. Во всяком случае openvpn сервер в репах убунты есть. :)
WGH
03.09.2015 19:38А давайте попробуем docker… Здесь меня ждало разочарование. Он говорит, что работает только на 64 битных системах. Хотя у меня сомнения, что он вообще умеет работать на ARM. Но, по крайней мере, ошибку он мне вывалил, именно про 64 бита. Вообщем, отпадает.
Я видел вполне нормально работающий Docker на Raspberry Pi 2.risik
03.09.2015 21:55Ну из убунту репы, на самом деле докер ставится. Но он там старый — 1.4. Не пригоден.
Я, собственно, изначально пытался ставить отсюда: docs.docker.com/linux/step_one здесь он и руганулся про то, что не 64 бита.
Сейчас нашел репозитарий на гихабе: github.com/docker-32bit/ubuntu — поиграюсь с ним попозже.
MrFrizzy
03.09.2015 20:34The C1 servers are ideal to package deployments for the IoT (Internet of Things).
As the first cloud provider worldwide to offer Docker on ARM, you have now the perfect tools to prepare your deployments for ARM devices directly in the cloud.
Docker logo
Тыцrisik
03.09.2015 22:02А вот это Вы очень хорошо ткнули! Я даже не обратил внимания на это. На самом деле, у них поверх инстанса есть возможность запускать докер образы с ImageHub или собственные.
Вот это слона-то я и не приметил! :)
AMDmi3
03.09.2015 22:40Учитывая предоставляемые ресурсы за такую цену, arm, и обещаемую в ближайшем будущем поддержку FreeBSD — очень интересно.
rhamdeew
04.09.2015 02:14+1По сути это дочерний проект хостера Online.net
В прошлом году участвовал в бета-тесте этого сервиса. Целых полгода совершенно бесплатно работали два подобных инстанса. В первое время конечно были косяки с образами систем и привязкой сетевых дисков, но в целом все работало.
Вообще лично мне понравилась концепция небольших bare-metal серверов, но с возможностью монтирования дисков прямо из панели управления.
MaxFactor
04.09.2015 12:22Жаль CentOS нету, проголосовал чтобы его добавили. А так сервис норм, для мелких сервисов сойдет за эти деньги.
TaHKucT
04.09.2015 14:38А покажите вывод dmidecode пожалуйста.
burjui
04.09.2015 15:01~ % sudo dmidecode # dmidecode 2.12 # No SMBIOS nor DMI entry point found, sorry.
Ubuntu 15.04
risik
04.09.2015 23:53dmidecode это x86* специфичная утилита. Она показывает информацию из BIOS. А в этой машине нет BIOS, показывать нечего.
Есть, например, lshw
# lshw scw-wbahs description: Computer width: 32 bits *-core description: Motherboard physical id: 0 *-memory description: System memory physical id: 0 size: 2023MiB *-cpu physical id: 1 bus info: cpu@0 *-network description: Ethernet interface physical id: 1 logical name: eth0 serial: 00:07:cb:03:18:95 size: 1Gbit/s capacity: 1Gbit/s capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=mv_eth duplex=full firmware=N/A ip=мой.внутренний.ip.адрес link=yes multicast=yes port=MII speed=1Gbit/s
esinev
05.09.2015 00:33Docker работает замечательно, пробовали на Odroid XU4, Odroid XU3 и SolidRun CuBox-i4?4.
На новую версию обновляется легко:
wget https://github.com/umiddelb/armhf/raw/master/bin/docker-1.7.1 && stop docker.io && cp docker-1.7.1 /usr/bin/docker && chmod a+x /usr/bin/docker && start docker.io
Подробнее в статье про docker для ARM v7
По производительности (3 шт. Odroid XU4, eMMC 32 GB или USB 3.0 HDD):
cassandra-stress на 3 нодах (каждая в docker-контейнере) выдает 12 тыс/c
iperf — около 950 Mbit/s
Centos 7 пока еще в экспериментальном репозитории, image для загрузки и для docker уже можно собрать, но тестировать всю систему придется самим, с ubuntu 14.04 все проще — уже давно всеми тестируется и работает как часы.
На этой неделе Hetzner стал предлагать сервера на основе Odroid XU4. Но почему-то ограничилcя только Ubuntu 15.04 (почему не выбрали 14.04?).
Производительности ARM v7 серверов вполне хватает (для наших задач), жалко что память ограничена только 2GB.
Хотя, есть экземпляры и с 4GB RAM, но по цене уступают в два раза Odroid XU4.
Стоит обратить внимание при размещение системы на sd-картах.
Для домашнего использования все хорошо, а вот для серверов — нет.
Часто при сбросе файлового кэша на sd-карту происходит замирание системы, т.к. sd-карты не обеспечивают постоянную скорость записи в режиме random.
Намного лучше себя ведут eMMC 5.0: постоянная скорость записи в разных режимах — 50MB/s (тестировали только у Odroid XU4).
По слухам, AMD готовит плату с 64-битным процессором, основанную на спецификации www.96boards.org/ee-specification по стоимости в 300-400$.
Для размещения в стойке формат текущих плат немного не устраивает.
Было бы здорово, если бы у Odroid XU4 порт UART и разьем питания располагались на противоположной стороне от RJ45 и были бы с каким-нибудь разъемом для backplane, например, как для шасси у медиаконвертеров.
ValdikSS
05.09.2015 19:16Я не понимаю, почему многие предпочитают выбирать дистрибутивы с неподходящими им версиями ПО в репозитарии и устанавливают нужное ПО через сторонние скрипты. Это же нелогично как-то, и разрушает управления пакетами через пакетный менеджер. Почему не установить тот дистрибутив, где у вас будет Docker нужной версии сразу, тот же Fedora 22, ArchLinux ARM? Вы ведь все равно остальной софт намерены внутри Docker запускать, с какой-то своей ОС.
amarao меня поддержит, я уверен.esinev
05.09.2015 20:03Потому что нужна стабильность и предсказуемость.
Например, я уже 4 года на ноутбуке используют archlinux, и каждый раз обновление системы приносит новые ошибки и (иногда) исправление старых. На ноутбуке две карты Nvidia и Intel, при обновлении ядра очень часто невозможно переключиться на Nvidia. Я уже не говорю про gnome shell, для которого у меня несколько скриптов, исправляющий его глюки.
Ставил archlinux на Odroid-U3 (используется в одном проекте для управления железками + vpn), в один день пришло обновление, которое поломало получение ip адреса по dhcp (было связано с systemd).
Мы выбрали Centos для Intel и ubuntu для ARM. Основное — это LTS.
Да, некоторые пакеты не устраивают, например java, docker, mysql и еще несколько.
Для низ сделаны собственные репозитории, за которыми мы следим и обрабатываем все CVE, связанные с ними.
Остальные пакеты в рамках существующих версий в LTS не обновляются на новые версии, только исправляются ошибки и правится безопасность, поэтому основная система стабильная.
ValdikSS
05.09.2015 20:05Почему не Fedora тогда?
esinev
05.09.2015 20:11Потому что она не поддерживается 5-10 лет, как LTS.
Что нам делать с серверами, каждые полтора года переустанавливать ОС?ValdikSS
05.09.2015 20:12Разве это проблема? Проапгрейдились до следующей версии раз в полтора года, и снова горя не знаете.
esinev
05.09.2015 20:37От версии к версии меняется много, разные системы инициализации (init, upstart, systemd), новые пакеты, взамен старых (например, pam для ldap), про ядро я уже не говорю (это только для intel, для arm за ядром все равно самим следить).
Плюс, нужно еще и протестировасть самим систему, погонять тесты на производительность.
Еще не надо забывать про новые GCC, glibc и binutils.
Плюс, больше чем уверен, что oracle свою версию java тестирует на LTS-системах.
А что мы получаем взамен?
Только новые версии пакетов, которые еще и не протестированы.
К примеру, мне все равно, что нового в open-ssh сервере (текущая функциональность полностью устраивает), главное, чтобы не было ошибок и дыр в безопасности.
Для host-систем, я лучше бы выбрал alpine linux или coreos, но у них нет LTS пока.
Экспериментировали с yoctoproject, но там не все входит в LTS и в случае с docker за слишком многим нужно следить самим.
У buildroot тоже нет LTS.
amarao
05.09.2015 22:49Ну, война bleeding edge с stable не прекращалась никогда.
Правильное решение: собирать свои пакеты, делать миррор и предоставлять их клиентам. Да, нужны люди с квалификацией. Нет, не обязательно. Вообще, никто не обязан работать качественно и кто угодно может халутрить настолько, насколько ему позволяет совесть и наглость.
ValdikSS
05.09.2015 19:06+1Если кто-то что-то будет компилировать, то следует использовать следующие CFLAGS/CXXFLAGS:
-mcpu=marvell-pj4 -mfpu=vfpv3-d16 -mfloat-abi=hard
CPU достаточно дохлый, не поддерживает NEON, так что для серьезных задач не годится.ValdikSS
05.09.2015 19:20Чисто для сравнения:
- i5-4570 (Haswell, 2013 года выпуска, 4 ядра, 3.2GHz) кодирует тестовое видео с 23 fps.
- XEON E5440 (2009 года выпуска, 4 ядра, 2.83GHz, ~Quad Q6600 разогнанный) кодирует тестовое видео с 10 fps.
- Эта ARM-машина кодирует тестовое видео с 0.93-1.07 fps.
burjui
06.09.2015 13:43+2Это больше говорит не столько о «дохлости» CPU, сколько об оптимизированной для SSE кодировке видео. К тому же, вы сравнивали CPU ~1300 bogomips без NEON с x86 8000-12000 (?) bogomips, а надо было с другим ARM примерно той же частоты, имеющим NEON, чтобы увидеть, что он даст на «серьёзных» задачах.
Пока что ваш тест говорит лишь о том, что это CPU не годится для кодирования видео.
xforce
А скорость канала мерять не пробовали? КВМ, как я понимаю, отсутствует. Если сервер перестал грузиться, к нему доступ сам получить уже не сможешь? И Список доступных ОС посмотреть-бы…
risik
Список ОС: Gentoo, ubuntu 12.04, ubuntu 14.04, ubuntu 15.04, archlinux, fedora 22, openSUSE 13.2, Alpine Linux 3.2, Debian Jessie (8.1), Debian Wheezy (7.8).
КВМ, кстати, есть. Доступен прямо из панели управления. Пока Вы не спросили, я на него даже внимания не обратил. :)
Реальную скорость канала не мерил. Заявлено у них 200 мегабит. Успел только посмотреть пинги до пары нужных мне мест. Например, от ДЦ AWS в Дублине до них менее 20мс.
HangGlider