• База знаний
  • /
  • Блог
  • /
  • Wiki
  • /
+380 (44) 364 05 71

ubuntu 20.04 что нового?

 

  1. Ubuntu 20.04 LTS. Что нового?
  2. Установка Ubuntu 20.04 Server
  3. Настройка сервера
  4. Заключение

Ubuntu 20.04 LTS. Что нового?

Ubuntu - популярный дистрибутив Linux, который отличается стабильностью, и большим сообществом, благодаря чему стабильные релизы дистрибутивов выходят в срок и имеют продолжительный срок официальной поддержки. Окончание публичной поддержки Ubuntu 20.04 «Focal Fossa» датировано апрелем 2025 года, а приватной 2030 года.

Минимальный требования к ресурсам Ubuntu 20.04 Server Live: 1CPU, 1024Mb RAM и 3GB свободного дискового пространства. Особых отличий Ubuntu 20.04 Server Live от Ubuntu 20.04 Desktop нет, оба используют один и тот же репозиторий, ядро имеет ту же конфигурацию, но в исталяторе серверной версии «из коробки» не предусмотрено графическое окружение и программное обеспечение характерное для настольных версий.

Что нового в Ubuntu 20.04? Стоит отметить свежее ядро Linux Kernel 5.4, повышающее производительность и безопасность сервера и некоторые его особенности:

1. В версии 5.4 улучшен Lockdown. Это режим блокировки ядра, который ограничивает доступ пользователя root различными частями функционала ядра, что будет полезно администраторам, которые занимаются его тюнингом. Таким образом, вредоносное п.о, получившее права root, не сможет выполнить свой код и на уровне ядра.

2. Доступен высокопроизводительный драйвер virtio — virtio-fs. Файловая система virtio-fs ускоряет обмен данными между хостом и гостевой системой. Предусмотрен проброс каталогов между ними с более высокой производительностью и совместимостью, чем если бы было использовано, например, NFS.

3. Fs-verity позволяет верифицировать подлинность и целостность файлов по хэшам на уровне файловой системы.

4. Доступен модуль dm-clone, позволяющий клонировать существующее блочное устройство. Например, есть блочное устройство доступное в режиме чтения, модуль позволит создать локальную копию, при этом допустима запись во время процесса клонирования.

5. Реализована защита, запрещающая запись в активные файлы подкачки.

6. Включена поддержка exFAT от Microsoft.

7. Флаги MADV_COLD и MADV_PAGEOUT позволяют определить, какие данные в памяти не критичны для работы процесса. Они перемещают эти данные в SWAP освобождая память.

8. Алгоритма сжатия ядра Linux LZ4 и загрузочного образа initramfs позволяет сократить время загрузки операционной системы.

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

Кроме того, в Ubuntu 20.04 реализована полная поддержка Кubernetes 1.18 (MicroK8s и kubeadm), при установке доступны Prometheus, Docker, NextCloud и многое другое. Так же в Ubuntu 20.04 улучшена поддержка ZFS.

Установка Ubuntu 20.04 Server

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

Выбор языка

На следующем этапе будет предложено использовать действительный инсталятор, или обновить его. Обновление происходит в фоновом режиме и занимает не более 10 секунд, обновите его:

Обновление инсталятора

Выберите раскладку клавиатуры. Указывайте везде English:

Раскладка клавиатуры

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

Настройка сети

Если доступ в интернет у вас осуществляется через proxy-сервер, укажите его:

Указание прокси-сервера

Далее, установщик предложим вам ближайшее зеркало (Mirror), исходя из вашего регионального расположения. Оставьте предложенное по умолчанию, или укажите свой:

Ближайшее зеркало

На этом этапе будет предложено разметить дисковое пространство. Выбрав «Use an entire disk» установщик сам разметит диски в автоматическом режиме. В зависимости от задач, вы можете выполнить разбивку разделов на собственное усмотрение, выбрав «Custom storage layout»:

Разметка диска

Следующий пример для наглядности, выносить даздел boot отдельно нет необходимости, вы можете все отдать под корень «/», что будет равнозначно «Use an entire disk». Вы можете сделать отдельным разделом boot или swap, выбрать формат файловой системы. Так же есть возможность создания LVM разделов. Меню интуитивно понятное:

Выделение раздела boot

Проверьте внимательно, все ли настроено как нужно и нажмите Done

Проверка настроек

Выберите «Continue» для подтверждения настроек:

Подтверждение настроек

Укажите имя сервера и пользовательские данные для доступа к серверу. Вы можете выбрать любого пользователя кроме «root» и «admin», которые зарезервированы системой. Так же придумайте сложный пароль, он должен быть не менее 10 символов, включать в себя строчные и заглавные символы латинского алфавита, а так же цифры и спецсимволы:

Установка пользовательских данных

Отметьте установку OpenSSH Server, для возможности удаленного подключения к нему, и нажмите «Done»:

OpenSSH Server

Перед вами появится длинный список того что можно установить «из коробки». Очень интересный этап, здесь доступна и интеграция с Kubernetes 1.18, etcd, интеграция с Google Cloud, Postgresql10, Prometheus и много чего другого. Выбирать компоненты для установки нужно осознанно, при условии, что вам это действительно необходимо для задач.

Установка ПО "из коробки"

Подтвердите «Done» и перед вами появится консоль установки в интерактивном режиме:

Консоль установки

По окончанию установки, внизу интерактивной консоли появится «Reboot». Извлеките носитель с установщиком и выполните перезагрузку сервера.

Перезагрузка сервера

Первоначальная перезагрузка займет более продолжительное время, чем это будет в дальнейшем. Будут инициализированы службы snapd, выполнится инициализация устройств cloud-init и прочее. Все зависит от того, каким образом устанавливается Ubuntu, на гипервизоре, или baremetall. По окончанию вы увидите окно аутентификации в систему. Так же, сервер будет доступен по ssh.

Вход в систему

Настройка сервера

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

 

root@dedicated:~# apt-get update
root@dedicated:~# apt-get install atop wget ntp vim net-tools -y

 

Подключение к серверу по ssh

Первое, на что стоит обратить внимание, это то, что в Ubuntu пользователь root отключен от аутентификации. Это выполнено с точки зрения безопасности. Подключение к серверу происходит по имени пользователя, который указан при установке:

 

admt@freehost:~$ ssh user@178.20.152.78
user@178.20.152.78's password:

 

Чтобы попасть в режим суперпользователя, введите следующую команду, которая запросит пароль пользователя user и переключит в жежим суперпользователя:

 

user@dedicated:~# sudo su
[sudo] password for user: ***********
root@dedicated:/home/user#

 

Если по каким-то причинам вы хотите разрешить доступ пользователя root при подключении по ssh, то смените для него пароль:

 

root@dedicated:~# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@dedicated:~#

 

Затем в конфигурационном файле /etc/ssh/sshd_config раскоментируйте строку PermitRootLogin указав значение yes:

 

PermitRootLogin yes

 

Однако, в целях безопасности сервера, доступ по логину root лучше не предоставлять.

Настройка сетевых интерфейсов

Начиная с Ubuntu 18.04 настройка сетевых интерфейсов происходит не в привычном каталоге /etc/network/interfaces как это реализовано в Debian-подобных дистрибутивах, а в каталоге /etc/netplan/. После установки ОС, в нем будет сгенерирован конфигурационный файл 00-installer-config.yaml

Если конфигурационный файл по какой-то причине пуст, сгенерируйте го:

 

root@dedicated:~# netplan generate

 

Для примера, выполним с ним некоторые операции. Переименуем его в более удобный вид:

 

root@dedicated:~#  mv /etc/netplan/00-installer-config.yaml /etc/netplan/01-netcfg.yaml

 

Применить настройки:

 

root@dedicated:~# netplan apply

 

Конфигурационный файл имеет следующий вид:

Файл конфигураций

Он имеет формат yaml и чувствителен регистру. При конфигурации файлов данного формата табуляция недопустима. Только четная последовательность пробелов и структура наследования директив, иначе, вы получите синтаксическую ошибку.

В нашем примере, сетевой интерфейс имеет название eth0, но при инсталляции Ubuntu он имел название enp0s8. Переименовать в конфиге сетевой интерфейс недостаточно. Так же следует править загрузчик grub:

 

root@dedicated:~# mcedit /etc/default/grub

 

найдите и отредактируйте значение:

 

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

root@dedicated:~# grub-mkconfig -o /boot/grub/grub.cfg
root@dedicated:~# reboot

 

Удаление ненужных компонентов

В зависимости от того на чем вы устанавливали сервер, Ubuntu может без вашего ведома инициализировать некоторые компоненты которые с одной стороны полезны, с другой стороны нет, если использование их не планируется. В нашем примере мы устанавливали виртуальный сервер на гипервизор Proxmox, Ubuntu без нашего ведома инициализировала службу cloud-init. Cloud-init представляет собой сценарий активации и инициализации виртуальных машин, который широко применяется для OpenStack и других облачных технологий с помощью скриптов и манифестов. Можно провести параллели с Terraform. Это гибкая и полезная вещь. Однако, если специфика вашей работы не предусматривает автоматизированный деплой виртуальных машин в гипервизор или облако, удалить его можно следующим образом.

 

root@dedicated:~#  echo 'datasource_list: [ None ]' | sudo -s tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg
root@dedicated:~#  apt-get purge cloud-init -y
root@dedicated:~#  rm -rf /etc/cloud/
root@dedicated:~#  rm -rf /var/lib/cloud/

 

Пакетный менеджер snap

Давайте так же, командой lsblk отобразим наши дисковые устройства:

Отображение дисковых устройств

Начиная с версии 16.04, Ubuntu все настойчивей пытается продвинуть менеджер управления пакетами snap. Приведем краткое объяснение с официального сайта разработчиков:

«snap пакеты Ubuntu содержат саму программу, а также все ее зависимости. Это имеет несколько преимуществ перед обычными deb или rpm пакетами, обрабатывающими зависимости. А главное, из них - разработчик может быть уверен что нет никаких регрессий из-за изменений версий библиотек в системе»

Snap это удобная вещь, и мы рекомендуем с ним ознакомиться, документация Ubuntu довольно информативна как на русскоязычных, так и на англоязычных ресурсах.

Отобразим список установленных пакетов, которые установились при инсталляции:

 

root@dedicated:~# snap list

 

Если нам что-то не нужно, удалим:

 

root@dedicated:~# snap remove lxd
root@dedicated:~# snap remove core18

 

Добавить пакет можно следующим образом:

 

root@dedicated:~# snap install docker

 

Обновить все пакеты:

 

root@dedicated:~# snap refresh

 

Обновить определенный пакет:

 

root@dedicated:~# snap refresh docker

 

Посмотреть список доступных пакетов:

 

root@dedicated:~# snap changes

 

Однако, стоит заметить, сейчас не так много snap пакетов. С полным перечнем вы можете ознакомится на сайте разработчиков https://snapcraft.io/ Вместо snap можете использовать пакетный менеджер apt. Если у вас snapd не установлен, установить его можно следующим образом:

 

root@dedicated:~# apt install snapd

 

Подключение swap раздела и настройка кеширования

Для начала убедитесь, что он не подключен:

 

root@dedicated:~# swapon --show

 

Если список пуст, создайте файл подкачки, например 2Gb. Измените права, и активируйте его. Порядок команд следующий:

 

root@dedicated:~# fallocate -l 2G /swapfile
root@dedicated:~# sudo chmod 600 /swapfile
root@dedicated:~# mkswap /swapfile
root@dedicated:~# swapon /swapfile

 

Проверка результата:

 

root@dedicated:~#  swapon —show
root@dedicated:~#  free -h

 

Что бы раздел swap после автозагрузки примонтировался автоматически, добавьте о нем информацию в /etc/fstab

 

root@dedicated:~#  echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

 

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

Настроим swappiness. Параметр vm.swappiness по умолчанию имеет значение 60, и контролирует процент свободной памяти. Он контролирует значение, после которого начнется активный сброс данных в swap. Значение «60» означает следующее: 100-60=40%. Другими словами, при загрузке ОЗУ более чем 40%, данные начнут кешироваться в swap. Не существует оптимального значения, он обусловлен только конфигурацией вашего сервера. Если ОЗУ достаточно, это значение можно уменьшить следующими командами:

 

root@dedicated:~# sysctl vm.swappiness=10

 

В конце файла /etc/sysctl.conf добавьте следующую строку:

 

vm.swappiness=10

 

Настройте кеширование. Измените параметр vfs_cache_pressure, отвечающий за скорость удаления индексов из кеша. По умолчанию это значение равно 100. Так как обращение к индексам довольное частое, это значение вы можете уменьшить:

 

root@dedicated:~# sysctl vm.vfs_cache_pressure=50

 

В конце файла /etc/sysctl.conf добавьте следующую строку:

 

vm.vfs_cache_pressure=50

 

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

 

root@dedicated:~# sh -c 'echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6'

 

В конце файла /etc/sysctl.conf добавьте следующую строку, в зависимости от интерфейсов:

 

# Отключение на всех интерфейсах
net.ipv6.conf.all.disable_ipv6 = 1

# Отключение на определенном интерфейсе
net.ipv6.conf.eth0.disable_ipv6 = 1

 

Заключение

В данном обзоре мы рассмотрели первоначальную настройку и оптимизацию Ubuntu 20.04. Так же рекомендуем ознакомиться со статьей «Как обеспечить безопасность Linux сервера» и другими статьями нашего блога, в котором рассмотрены вопросы администрирования операционных систем и различных приложений. Для наших клиентов облачного VPS хостинга, мы создали готовый шаблон, с помощью которого вы можете установить Ubuntu 20.04 в автоматическом режиме и уже несколько минут приступить к работе. Наша круглосуточная служба технической поддержки поможет с его базовой настройкой, если у вас возникнут сложности.

Дата: 13.05.2020
Автор: Евгений
Голосование

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:

comments powered by Disqus
Спасибо, что выбираете FREEhost.UA