У попередній статті ми визначилися, що будемо робити. Це буде NAS створений зі старого комп’ютера. Нове залізо у мене пішло на оновлення домашнього комп’ютера, а старе залізо з нього тепер буде приносити користь у якості медіасерверу. Щоб стареньке залізо нормально працювало я буду ставити Ubuntu Server без графічної оболонки взагалі. Один раз при встановленні я його налаштую у консолі і далі він стоятиме у закутку лише з двома дротами – живлення і інтернету.
Яке залізо підійде
У мене під цю задачу пішла наступна конфігурація: Intel Pentium Sandy Bridge на 2 ядра та 4Гб DDR3 оперативки. У попередньому експерименті ми визначили, що підійде конфігурація починаючи з 2Гб ОЗУ і Intel Atom. Якщо у вас буде менше 2Гб ОЗУ це буде впливати на швидкість доступу до великих файлів (наприклад, відео високої чіткості), тому що вони будуть не встигати кешуватися. Якщо ви використовуєте до 4 Гб ОЗУ то є сенс пошукати 32-бітну версію ОС, бо вона економніше відноситься до пам’яті. Але зважайте, що з 32-бітних Ubuntu наразі ще підтримується лише версія 16.04 LTS і в цьому році ця підтримка закінчується. А це погано в плані безпеки, тому або робіть так на власний ризик, або все одно ставте 64-бітну ОС, або шукайте інший дистрибутив. Я би порадив в будь-якому випадку докинути ОЗУ, це ще нікому і ніколи не завадило. Покоління в нашому випадку не має суттєвого значення, хоч DDR1. Хоча ви навряд чи знайдете 4Гб DDR1. Також в цілому немає значення, одним модулем встановлено пам’ять, чи декількома – різниця у швидкості доступу до файлів буде непомітною.
Щодо процесора рекомендації наступні: старі процесори до покоління Core2 не рекомендується, тому що може так виявитися, що нові дистрибутиви будуть вимагати якихось особливих інструкцій, які старі процесори не підтримують. Intel Atom як не дивно підходить, але зазвичай ці процесори мають геть куцу систему охолодження, яка постійно шумить. Починаючи з покоління Core2 все підходить. Можна хоч Celeron. Більш того, не рекомендується використовувати Core i7 – Core i9. Бо їх потрібно буде в UEFI обмежувати у потужності, інакше по-перше вони самі собою можуть легко розігріватися і починати шуміти кулером, а по-друге, їм потрібні більш потужні (і відповідно шумні і/чи дорогі) блоки живлення, а далі я вам планую показати деякі лайфхаки.
У старих поколіннях AMD я не знаюся, Ryzen точно підходять будь-які, головне щоб не Ryzen 7 – Ryzen 9, бо так само надто гарячі і енерговитратні.
Є в процесорі відеоядро, чи немає – абсолютно не важливо. Просто якщо інтегрованого відеоядра немає – на момент встановлення ОС доведеться вставити будь-яку відеокарту, щоб підключити монітор і встановити систему, після чого відеокарту можна буде вийняти і більше ніколи не вставляти. Або як варіант – встановити ОС на іншому ПК, а потім переставити системний диск.
Вимоги до материнської плати мінімальні. Вона має бути без активного охолодження чіпсету і у ній має бути настільки багато SATA-портів, наскільки ви плануєте в майбутньому розширити внутрішнє сховище. Я в якості експерименту встановлюю операційну систему на USB-флешку, тому для мене також важливо, щоб плата мала USB 3.0 роз’єм. Але все ж краще взяти хоч невеличкий SSD для системи. Принаймні, якщо кількість SATA чи M2-портів дозволяє. Флешка все ж менш витривала. Рекомендовано, щоб на платі був Гігабітний Ethernet-роз’єм, але це не обов’язково, та і можна буде потім вирішити окремою мережевою платою. Якщо у вашій материнській платі менше SATA-портів, ніж хочеться, можна також придбати PCI-Express карту з додатковими SATA-портами. Використовувати Wi-Fi не рекомендується, він завжди повільніший і менш надійний.
Вимоги до роутера: якщо у вас в материнських платах Гігабітні роз’єми, то і роутер має підтримувати Гігабіт, а не 100 Мбіт по LAN. Але головне, щоб роутер підтримував 5 ГГц. Тому що 100 Мбіт по проводу, це повільно, але все ж дозволяє дивитися FullHD потокового відео навіть у файлах з низькою компресією H.264, а от Wi-Fi 2,4 Ггц з заявленими 300 Мбіт не встигає підтягувати FullHD в реальному часі. Тому що радіоканал менш надійний, ніж мідний дріт, тому 100Мбіт LAN завжди краще ніж 300 Мбіт Wi-Fi. А оптимально для NAS – Гігабітний LAN і Wi-Fi 5/6.
Вимог до дисків небагато. Якщо ви збираєтесь використовувати RAID-масив, то краще придбайте два однакових диски. Краще, якщо система буде на окремому диску, чи хоча б флешці. Якщо ви плануєте один раз записати на NAS фільмотеку і потім тільки переглядати її – то в цілому можна придбати і диск з SMR, але все ж завжди намагайтеся обирати CMR-диск. До слова, RAID-масив для NAS це топова тема. По-перше, важливу інформацію можна-таки дублювати, а по-друге, неунікальну інформацію (ті ж фільми, чи музику) можна об’єднати на двох дисках, отримавши швидкість доступу майже вдвічі швидшу, що наблизить показники HDD до SDD. Лайфхак, так би мовити.
Покрокова інструкція
Установка і конфігурування системи
В принципі, встановлювати Ubuntu Server можна в лінивому режимі, тобто не розмічати диск вручну, а обрати автоматичну розмітку, давши волю інсталятору. Принаймні, якщо ви мене послухали і виділили під систему окремий накопичувач. Далі я думаю ви здужаєте обрати регіон і часовий пояс, тим паче швидше за все система вам сама запропонує правильний варіант. Раніше Ubuntu пропонувала одразу поставити деякий софт, типу Samba чи поштового сервера, що трохи спрощувало налаштування, але Ubuntu Server 22.04 LTS обмежується тільки SSH із коробки. Що ж, ставимо SSH, інше потім вручну додамо. Все інше залишаємо так, як обрано за замовчуванням.
Важливо! Придумайте для адміністатора (root) більш-менш складний пароль, а не «1234», тому що сервер буде багато часу знаходитися в мережі і рано чи пізно хакери захочуть призвати його до безмежних лав DDOS-армії щоб атакувати сайт якогось пентагону, після чого у вас почнуться проблеми з провайдером, який буде на кожному кроці перевіряти капчу. Воно вам не треба.
Тож, Ubuntu Server встановилася успішно і тепер вона питає логін і пароль адміністратора. Якщо ви не забули встановити SSH, то можете навіть не заходити в систему. Краще, поки під’єднано монітор, зайдіть в UEFI. В UEFI я знизив до мінімуму оберти кулера процесора коли температура не перевищує 50 градусів, тому що більшу частину часу нормальний настільний комп’ютер з Ubuntu Server буде працювати майже не навантажуючи процесор, тож треба, щоб він був максимально тихий і енергоефективний. В принципі, можна взагалі вимкнути кулер до 50 градусів, якщо ваш UEFI це дозволяє. Також в UEFI я увімкнув Wake On LAN. Це опція, завдяки якій можна розбудити комп’ютер із сплячого режиму надіславши йому спеціальний пакет по інтернету. Справа у тому, що свій особистий сервер я настроїв так, щоб він був у сплячому режимі більшу частину часу, але як тільки він мені стає потрібний, я просто роблю один клік і він секунд за 5 з’являється в мережі. Якщо ви пануєте тримати NAS постійно увімкненим, то можете цього не робити. Як увімкнути WOL шукайте в інструкції до вашої материнської плати. Після цього від’єднуйте монітор, ставте сервер у прохолодний затишний куток куди дістає кабель інтернету і більше його не чіпайте. Далі усі налаштування можна робити дистанційно.
Налаштування серверу
Нам треба під єднатися до сервера з іншого комп’ютера щоб його налаштувати. Беремо комп’ютер, що знаходиться в тій же локальній мережі і запускаємо Термінал (якщо це Linux), Командний рядок (якщо Windows), або встановіть командний рядок для Android чи iOS, наприклад застосунок Termlux.
Тепер у командному рядку набираємо
ssh user@server
Де user – ім’я користувача, яке ви придумали коли встановлювали Ubuntu Server, а server – це назва, яку ви вигадали для цього комп’ютера тоді ж. Майте на увазі, що підключитися за ім’ям серверу вийде не завжди, якщо у вас не виходить, під’єднуйтесь за IP-адресою по типу user@192.168.0.123 де 192.168.0.123 – це IPv4 адреса сервера у вашій локальній мережі, яку можна дізнатися, якщо зайти в налаштування вашого роутера і переглянути підключені по дроту пристрої.
Тож, ми під’єдналися, ввели пароль, і тепер усі команди будуть адресовані серверу.
Форматування дисків
Якщо у вас жорсткий диск не розмічений, то треба буде його відформатувати. Власне, статистично швидше за все у вас не буде жорсткого диску з файловою системою ext4, тому я напишу, як відформатувати диск. Але якщо у вас диск вже відформатований як треба, то пропустіть цю частину і переходьте до монтування дисків.
Щоб відформатувати диск, нам треба дізнатися, як Linux його назвала.
lsblk
Ця команда покаже всі ваші диски і їх логічні розділи (томи). Для новачка у Linux тут все незрозуміло, тому…
[spoiler title=”Лікбез для новачків у Linux”]Linux не називає диски літерами латинського алфавіту починаючи з «C», як би природньо для вас це не виглядало. Фізичні диски в Linux мають назву виду sd*, як от sda, sdb, sdc, і т.д. Кожен диск можна розбити на розділи (томи). Диск можна віддати під один розділ, або розбити на 2-3 і більше. Томи відповідно отримають цифрову приставку. Томи на диску sda отримають назви sda1, sda2, sda3 і т.д. З цими знаннями відсійте системний диск, де стоїть система, розділ з документами і розділ swap, і визначіть, як називається диск, який нам треба форматувати. До прикладу, хай це буде sda.[/spoiler]
sudo parted /dev/sda
Цим ви запускаєте програму для розбивки дисків на розділи Parted і подальші команди будуть адресовані саме їй. Цій програмі одразу передається диск sda, з яким вона і буде працювати.
(parted) mklabel gpt
Сучасні диски мають мати таблицю розділів типу GPT на початку своєї поверхні. Старий стандарт цієї таблиці міг керувати чарунками пам’яті у просторі не більше 2Тб. В принципі, якщо у вас диск менше 3Тб, то для вас різниці не буде яку таблицю розділів використовувати і ви можете виконати команду mklabel msdos. Це корисно, якщо у вас дуже старе залізо, яке може не розпізнавати сучасні диски GPT і просто не бачити їх.
Я планую на жорсткому диску розмістити всього один розділ, де і буде надалі розміщено папку, доступну з локальної мережі.
(parted) mkpart primary ext4 1MiB 100%
Цією нехитрою командою ми будемо створювати розділ з файловою системою ext4, розділ буде починатися з першого мегабайту і на всі 100% об’єму диска. На даний момент ext4 є оптимальним вибором для Linux, але якщо у вас є свої роздуми, можете обрати іншу з підтримуваних Linux. Також можна створити декілька дисків, лише змінюючи розміри і початок наступних розділів. В цілому можна навіть робити не основні, а логічні розділи, але для нас сенсу в цьому небагато.
Щоб побачити, що у нас вийшло з диском, виконайте команду
(parted) print
Якщо все так, як ми і планували, то виходим з програми розбивки дисків.
(parted) quit
Повторіть цю процедуру стільки разів, скільки дисків ми зараз будемо готувати.
Тепер у мене є диск sda з розділом sda1. У вас може бути скажімо sdb з розділами sdb1, sdb2, sdb3. Але так як це нові щойно створені розділи, тепер їх треба відформатувати.
sudo mkfs.ext4 /dev/sda1
Цю процедуру також повторіть до усіх розділів, які ви створили.
На цьому ми закінчили розбивку і форматування дисків. Зараз піде дичина, що є особливістю Linux.
Монтування дисків
Система Linux має цікаву схему роботу з дисками. Будь-який жорсткий диск, SSD, чи флешка можуть бути фізично під’єднані, але для системи вони за замовчуванням від’єднані і недоступні для користувача і програм. Кожен диск треба програмно підключати до системи. Цей процес називається монтуванням, диски монтуються у певну папку, після чого заходячи у цю папку ви потрапите на змонтований диск. Монтувати диски можна вручну, коли ви в системі даєте команду змонтувати кудись диск, або автоматично, коли диск буде монтуватися при запуску системи. Виключень з правила немає, монтуються навіть системні розділи, просто автоматично при старті системи.
Кожен фізичний диск в системі має унікальну назву UUID. Це унікальне ім’я, по якому система звертається до конкретної залізяки, яку ви придбали в магазині і приєднали до SATA-кабелю. Щоб дізнатися, який унікальний ідентифікатор присвоєно вашим дискам, виконайте команду
blkid
Запишіть, скопіюйте чи хоча б сфотографуйте UUID диска(-ів), який ми відформатували. Тепер відкрийте в редакторі текстових файлів Nano файл з системними налаштуваннями.
sudo nano /etc/fstab
Тут є диски, що монтуються автоматично при старті системи. Запишемо сюди наші диски, адже нам треба, щоб вони були доступні весь той час, що сервер працюватиме.
UUID=ваш_uuid /media/video ext4 defaults 0 1
Зберігаємо файл (Ctrl+O) з тим же іменем файлу і закриваємо редактор Nano (Ctrl+X). В принципі, можна монтувати диск не у папку media а в home, це на особистий вибір. Назва папки video також може бути іншою. Якщо тепер ввести команду sudo mount -a, диск змонтується без перезавантаження системи. Тепер якщо зайти у папку /media/video ви потрапите на наш диск.
ls -l /media/video – вивести список файлів у папці
Швидше за все, у порожньому диску ви побачите системну папку Lost+found. Якщо ви не хочете, щоб вона весь час плуталась під ногами, просто створіть у корні диска папку video, після чого на весь диск у нас буде дві папки, одна системна, а у другій і будуть усі наші файли, її вміст ми і будемо показувати у локальній мережі.
sudo mkdir /media/video/video
Тепер давайте для цієї папки встановимо права, що будь-хто може читати і записувати файли у неї.
sudo chmod 777 /media/video/video
Показуємо файли і папки у локальній мережі
Тепер при запуску системи у нас будуть доступні свіжевідформатовані диски. Але бачити це все можна лише на цьому комп’ютері. Давайте покажемо ці папки для пристроїв у вашій мережі. Для цього треба встановити спеціальну програму, сервер Samba, яка буде транслювати у локальну мережу файли у форматі, зрозумілому для Windows.
sudo apt update
sudo apt install samba
Після встановлення, відкриємо файл з настройками Samba.
sudo nano /etc/samba/smb.conf
Там може бути доволі багато тексту. Знайдіть розділ [global] і переконайтеся, що там є наступні рядки
[global]Workgroup = WORKGROUP
Server string = рядок з описом сервера
Netbios name = назва сервера, як він буде відображатися у локальній мережі
security = user
map to guest = Bad Password
WORKGROUP – таку назву групи за замовчуванням отримують усі комп’ютери на Windows під час встановлення системи. Але якщо ви цю опцію змінили, ви можете не побачити сервер, тому що він з вашим комп’ютером буде у різних робочих групах. Побачити цю назву можна у властивостях системи, вкладці «Ім’я комп’ютера».
А тепер в кінці конфігураційного файлу давайте свій розділ.
[Video]comment = users_comment
path = /media/video/video
guest ok = yes
public = yes
writeable = yes
browseable = yes
Назва розділу може бути будь-яка, але саме так буде називатися мережева папка. В моєму випадку це Video. Але вона може називатися Vasiliy, збіг з назвою фізичної папки на сервері не обов’язковий. Інші рядки означають, що ресурс можна читати і записувати, і для цього навіть не обов’язково бути зареєстрованим на сервері користувачем. Як зробити доступ до папки за паролем, а також багато інших ідей по налаштуванню серверу мені доведеться винести в ще одну статтю, бо ця вже вийшла надто великою.
А зараз можна перезавантажити Samba
Sudo service smbd restart
Або весь сервер
Sudo systemctl reboot
Після цього у локальній мережі має з’явитися новий пристрій і якщо його відкрити, там буде папка (папки) у які можна зберігати файли і відтворювати їх будь з якого пристрою у локальній мережі. Якщо у вас Windows 8.х або новіше, сервер у локальному оточенні вона не покаже, треба явно зайти на сервер, набравши у провіднику рядок \\ServerName. Або зайти у Панель керування – Програми – Увімкнути або вимкнути засоби Windows і там поставити галочку «Підтримка протоколу спільного використання файлів SMB 1.0/CIFS і протоколу браузера комп’ютера. Активувати цей пункт, між іншим, небезпечно, бо шифрувальники типу вірусу Petya саме через діру у цьому протоколу і поширюється локальною мережею. Тож краще заходити вручну, чи закріпити віддалені диски у Провіднику.
У наступній статті я опишу деякі особливості по налаштуванні, що додадуть зручності. Пишіть коментарі, якщо є якісь питання, чи враження.