NAS

Откакто научих какво е NAS, искам да сглобя едно такова, за да имам място специално за информацията, която ми е важна. Освен това има много неща, които са ми интересни и искам да си играя с тях, но е неоправдано да не са виртуализирани.

Преди десетина години вкъщи се появиха няколко едва работещи компютъра. От тях си харесах единия за “сървър” и му закачих всичките работещи дискове, които намерих. Беше с някакъв Debian, където бях инсталирал стандартните неща, с които си играех тогава – Apache, lighthttpd, MySQL, WordPress и разни други такива. Тогава още нямах рутер и се налагаше нормалният компютър да споделя връзката към другите в къщата. Заради това ми се наложи да науча много неща за мрежи, ReverseProxy-та, красоти около iptables и как да си говорят няколко машини без да се карат. Веднъж отнякъде се появи и работещ RAID контролер – някакъв Adaptec. Не помня дали поддържаше SATA, но дисковете със сигурност бяха вързани с PATA (IDE) кабели. Нямах идея как се работи с това, но пък бях чувал, че е добре да има RAID, затова директно вързах всички дискове към него и създадох масив. Кой да предположи, че това ще затрие всичко по дисковете…

Оттогава започнах да чета и да чакам момента, в който ще си купя някоe 4U съкровище с поне два Xeon-а и няколкостотин гигабайта RAM, ще му сложа ESXi и ще забравя как изглежда светът през деня. През последните години не съм спирал да уча и да се интересувам от админски неща. В един момент бях стигнал до извода, че 40U rack може и да ми стигне, ако махна това-онова. Гледането на /r/homelab, /r/sysadmin и /r/datahoarder изобщо не помага.

Проблемите ми с enterprise сървърите са основно цената и шума. Донякъде и потреблението на ток за определени модели.

Съвременните неща ми идват неоправдано скъпи за играчка.  Миналата година начатках това от сайта на Supermicro:

Едно такова за Коледа, моля

Близо $50 000 чисто щастие – 44 ядра с hyperthreading (т.е. 88 “логически” ядра), 512 GB RAM, 10Gb мрежа и много storage.

Винаги се намират стари сървъри из ebay или olx, но често идват без поддръжка и незнайно колко оставащ живот в тях. Сред най-известните стари и евтини сървъри, които намирам, е PowerEdge R710 на Dell. Звучи така при излитане. При пълен товар не е особено тих.

Друг вариант са работните станции на Dell и Lenovo.

Преди да сглобя текущия си десктоп за малко бях с един T7400 на Dell. Взех го, защото ми хареса колко модулно е всичко вътре, как има два сокета, тунел за охлаждането на процесорите, ECC и други красоти. Преглътнах, че е с DDR2, но това, че рамта работи на 60 градуса без товар, ми дойде в повече и го върнах.

Последното ми решение да имам много storage и виртуализация вкъщи е да оставя текущия ми desktop с някакъв hypervisor или с FreeNAS и да сглобя нов. Към момента се радвам на i7-4790K с 32GB памет и няколко TB дискове. С пуснати няколко виртуални машини, търкалящи всевъзможни неща, не се впечатлява особено. Затова смятам, че ще му е добре да се преквалифицира като хост на FreeNAS или Proxmox. 

За целта започнах да събирам чаркове за новата машина, която ще страда като desktop. Планът беше да е с i7-8086K, но започнах да се колебая дали да не е нещо с Ryzen. И без това има много време, докато стигна до купуване на части за нов компютър, защото идеята ми е да напълня 6-те SATA порта на дъното на стария и да използвам вградения RAID controller за RAID 5. Тъй като не бързам, купувам частите през месец-два. Вероятно е скоро да не сглобя нищо, но поне се движа натам.

След като реша дали ще е с Proxmox или FreeNAS, мисля да пусна всякакви шаренийки. Първо ще преместя transmission-а, който работи върху едно OLinuXino със закачен диск на него, защото е напът да си отиде. След това идва реда на Plex, Nextcloud, Sickrage или Couchpotato и всякакви такива. Ще му пусна и нещо подобно на pi-hole, за да имам ad block на ниво DNS на всички устройства, които се вържат за мрежата тук. Разбира се, всичко това ще трябва да е достъпно по сигурен начин, ще трябва да си играя с потребители, сертификати и една камара други глупости. 

Нямам търпение да видя какви проблеми ще ми създаде това начинание 🙂

Локална разработка с отдалечен сървър като хост на контейнери, сървъри, service-и и т.н.

Пак открих топлата вода.

Налага ми се да работя с Macbook. За преживяването ще кажа, че дори след като му сложих Debian, не мога да разбера защо някой може да го ползва доброволно. За 12-те години, в които ползвам Linux, не бях виждал да се ползва swap-а при сериозно натоварване. Тук стигнах 7 GB swap при нормална употреба. Необяснимо за мен е как толкова хвалено нещо работи толкова зле. Говоря чисто като хардуер. Откъм неудобността на интерфейса няма смисъл да коментирам. Толкова с хейта. Най-вероятно има случаи, в които си струва да дадеш близо 6K за лаптоп.

Малко преди екраните да започнат да мигат и да се изключи.

В процеса на работа се налага да пусна няколко docker-ски контейнера с различни услуги. Тъй като не мога да променям конфигурациите без да счупя работата на други хора, услугите на docker-а трябва да работят локално. Това води до повишаване на температурата на процесора от 75 градуса при idle до около 100. 

Първото ми решение беше да пусна Apache с ReverseProxy, но това беше не само неудобно заради излишно много конфигурация, но и не особено добре работещо. След това мислех да пусна squid, който да пренасочва локалните ми портове към портовете на отсрещната машина. Това също ми изглеждаше като много конфигурация.

Решението на проблема ми се оказа доста по-просто – SSH с GatewayPorts=yes и изброени портовете, които да се пренасочат. Цялата работа се свежда до това:

ssh \
	-L 3306:localhost:3306 \ # SQL
	-L 5672:localhost:5672 \ # Rabbit
	-L 6379:localhost:6379 \ # Redis
	-L xxxx:localhost:yyyy \ # Друго
	-N -o GatewayPorts=yes mgc@whatever

Така когато се обърна към localhost:3306, например, заявката се обработва от MySQL сървъра, който работи на отсрещната машина (whatever в примера по-горе).

Засега не съм срещал проблеми при този начин на работа. Използвам го както с GCP, така и с DigitalOcean без забележимо забавяне. 

Debian 6.0

Сутринта видях, че е излязла новата версия на Debian – Squeeze. Веднага свалих DVD-то и го изпекох (нямах cd).
Има тонове нови неща. Сменили са splash-а, инсталацията е с приятно синьо и в пъти по-бърза, има нови опции, поддръжка на нови файлови системи. Много неща!
Инсталацията мина много бързо. За сравнение – когато инсталирах Lenny, избирах по около 800 пакета и му трябваха 10-15 минути да ги изкара от диска. При squeeze за 10-15 минути избира и инсталира 1100 пакета:)
По време на инсталацията изпищя, че не може да се свърже с repository-то. Излиза, че, докато се е настройвал apt, инсталаторът е натикал “deb ://volatile.debian…” вместо “deb http://volatile…”
Все още не мога да оправя драйверите на видеото. Дано поне на лаптопа да тръгнат както трябва.
Нямам време да се занимавам сега.

P.S. Линк към статията в debian.org: цък.

`GLIBCXX_3.4.11′ not found

Онзи ден се опитах да подкарам Common Music/Grace, но нещо не се получи. Гърмеше ми с “/usr/lib/libstdc++.so.6: version “`GLIBCXX_3.4.11′ not found” (required by ./Grace)
След малко ровене из форуми го зарязах, все пак не е кой знае какво някаква ненужна програма да не ми върви. Тази сутрин обаче исках да пробвам Game Editor, да поубия малко време. Е, той ми гръмна със същата грешка. След около час ровене из google и произволни форуми успях да скрепя нещо. Излиза, че гореспоменатите са компилирани с различни версии на gcc от моята (или нещо подобно). Най-накрая успях да го оправя:

Първо добавих tesing в sources.list (deb http://ftp.debian.org/debian testing main contrib)
След това инсталирах g++-4.4-multilib (apt-get install g++-4.4-multilib)
Един apt-get check за всеки случай.
След това всичко си тръгна както трябва. Вече ще си пиша недодялани 2D игри без проблем 🙂

(това го пиша основно за себе си, защото имам навика да забравям как съм оправил разни неща и ми се налага да ровя наново)