Продолжаем рассматривать основные аспекты управления хранилищем в ОС Linux. Сегодня поговорим о SMB/CIFS, NFS, iSCSI, S3 и других технологиях. Первую часть можно прочитать здесь.
1. SMB/CIFS (Server Message Block / Common Internet File System)
SMB/CIFS — это сетевой протокол, используемый для общего доступа к файлам и принтерам в сетях Windows. В Linux он часто используется для интеграции с Windows-сетями или для создания файловых серверов.
Для работы с SMB/CIFS в Linux используется пакет samba. Установка: sudo apt install samba
Редактируйте файл /etc/samba/smb.conf для создания общих ресурсов (шаров).
Пример конфигурации:
[shared]
path = /srv/samba/shared
read only = no
browsable = yes
Перезапустить службу: sudo systemctl restart smbd
sudo apt install cifs-utils
sudo mount -t cifs //server_ip/shared /mnt -o username=user,password=pass
2. NFS (Network File System)
NFS — это протокол для общего доступа к файлам. Он позволяет монтировать удаленные файловые системы как локальные. Используется для совместного использования данных между серверами и клиентами в Linux-системах.
Установите NFS-сервер:
sudo apt install nfs-kernel-server
Настройте экспортируемые директории в /etc/exports:
/srv/nfs 192.168.1.0/24(rw,sync,no_subtree_check)
Перезапустите сервер:
sudo systemctl restart nfs-kernel-server
Используйте команду mount:
sudo mount -t nfs server_ip:/srv/nfs /mnt
sudo journalctl -u nfs-server
3. iSCSI (Internet Small Computer Systems Interface)
iSCSI — это протокол для передачи команд SCSI через IP-сети. Он позволяет использовать удаленные диски как локальные. В Linux можно настраивать как таргет (сервер), так и инициатор (клиент).
Установите targetcli:
sudo apt install targetcli
Настройте target и LUN (Logical Unit Number):
sudo targetcli
/> backstores/block create disk1 /dev/sdb
/> iscsi/ create iqn.2023-10.example:storage
/> iscsi/iqn.2023-10.example:storage/tpg1/luns/ create /backstores/block/disk1
/> iscsi/iqn.2023-10.example:storage/tpg1/acls/ create iqn.2023-10.client:initiator
/> exit
Установите open-iscsi:
sudo apt install open-iscsi
Обнаружьте target:
sudo iscsiadm -m discovery -t sendtargets -p server_ip
Подключитесь к target:
sudo iscsiadm -m node -T iqn.2023-10.example:storage -p server_ip -l
Настройте CHAP-аутентификацию для защиты соединений
Используйте multipath для повышения отказоустойчивости
Мониторьте соединения с помощью:
journalctl -u iscsid (клиент)
journalctl -u tgt (сервер)
4. S3 (Simple Storage Service)
Amazon S3 — это онлайн-сервис облачного хранилища от Amazon Web Services. Он позволяет хранить неограниченное количество данных, которые доступны из любой точки мира. Сервис поддерживает шифрование данных и гибкую политику доступа (через IAM). В Linux можно использовать S3-совместимые хранилища (например, MinIO) или работать с облачными провайдерами (AWS S3).
Установите awscli для работы с AWS S3:
sudo apt install awscli
Настройте доступ:
aws configure
Примеры команд:
aws s3 ls s3://bucket-name
aws s3 cp file.txt s3://bucket-name/
Установите MinIO:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data
Используйте mc (MinIO Client) для управления:
mc alias set myminio http://localhost:9000 access_key secret_key
mc ls myminio/bucket
LVM (Logical Volume Manager): управление логическими томами для гибкого распределения дискового пространства поверх физических устройств.
Btrfs и ZFS: современные файловые системы с поддержкой снапшотов, дедупликацией и встроенными функциями RAID.
Btrfs — подходит для локальных дисков с возможностью динамического расширения.
ZFS — эффективен для серверных систем и больших хранилищ.
GlusterFS и Ceph: распределенные хранилища для больших объемов данных и высокодоступного хранения.
GlusterFS — прост в настройке, использует несколько серверов для репликации.
Ceph — масштабируемая система с поддержкой объектов, блоков и файлов.
Rclone: универсальный клиент. Позволяет подключаться к множеству облачных сервисов (Google Drive, OneDrive и т.д.)
Управление хранилищем может показаться сложным для начинающего администратора — каждая технология имеет свои особенности, и разобраться во всем этом многообразии бывает непросто. На курсе «Администрирование Linux» мы выделили целую тему, посвященную эффективному управлению локальными и сетевыми хранилищами:
Старт нового потока курса — 24 марта. Ознакомиться с программой и присоединиться к изучению можно здесь.
1. SMB/CIFS (Server Message Block / Common Internet File System)
SMB/CIFS — это сетевой протокол, используемый для общего доступа к файлам и принтерам в сетях Windows. В Linux он часто используется для интеграции с Windows-сетями или для создания файловых серверов.
- Установка
Для работы с SMB/CIFS в Linux используется пакет samba. Установка: sudo apt install samba
- Настройка
Редактируйте файл /etc/samba/smb.conf для создания общих ресурсов (шаров).
Пример конфигурации:
[shared]
path = /srv/samba/shared
read only = no
browsable = yes
Перезапустить службу: sudo systemctl restart smbd
- Монтирование SMB/CIFS в Linux: используйте утилиту cifs-utils.
sudo apt install cifs-utils
sudo mount -t cifs //server_ip/shared /mnt -o username=user,password=pass
2. NFS (Network File System)
NFS — это протокол для общего доступа к файлам. Он позволяет монтировать удаленные файловые системы как локальные. Используется для совместного использования данных между серверами и клиентами в Linux-системах.
- Установка и настройка
Установите NFS-сервер:
sudo apt install nfs-kernel-server
Настройте экспортируемые директории в /etc/exports:
/srv/nfs 192.168.1.0/24(rw,sync,no_subtree_check)
Перезапустите сервер:
sudo systemctl restart nfs-kernel-server
- Монтирование NFS
Используйте команду mount:
sudo mount -t nfs server_ip:/srv/nfs /mnt
- Логи сервера (если что-то пошло не так)
sudo journalctl -u nfs-server
3. iSCSI (Internet Small Computer Systems Interface)
iSCSI — это протокол для передачи команд SCSI через IP-сети. Он позволяет использовать удаленные диски как локальные. В Linux можно настраивать как таргет (сервер), так и инициатор (клиент).
- Настройка iSCSI-сервера (target)
Установите targetcli:
sudo apt install targetcli
Настройте target и LUN (Logical Unit Number):
sudo targetcli
/> backstores/block create disk1 /dev/sdb
/> iscsi/ create iqn.2023-10.example:storage
/> iscsi/iqn.2023-10.example:storage/tpg1/luns/ create /backstores/block/disk1
/> iscsi/iqn.2023-10.example:storage/tpg1/acls/ create iqn.2023-10.client:initiator
/> exit
- Настройка iSCSI-сервера (initiator)
Установите open-iscsi:
sudo apt install open-iscsi
Обнаружьте target:
sudo iscsiadm -m discovery -t sendtargets -p server_ip
Подключитесь к target:
sudo iscsiadm -m node -T iqn.2023-10.example:storage -p server_ip -l
- Безопасность и оптимизация
Настройте CHAP-аутентификацию для защиты соединений
Используйте multipath для повышения отказоустойчивости
Мониторьте соединения с помощью:
journalctl -u iscsid (клиент)
journalctl -u tgt (сервер)
4. S3 (Simple Storage Service)
Amazon S3 — это онлайн-сервис облачного хранилища от Amazon Web Services. Он позволяет хранить неограниченное количество данных, которые доступны из любой точки мира. Сервис поддерживает шифрование данных и гибкую политику доступа (через IAM). В Linux можно использовать S3-совместимые хранилища (например, MinIO) или работать с облачными провайдерами (AWS S3).
- Использование S3 в Linux
Установите awscli для работы с AWS S3:
sudo apt install awscli
Настройте доступ:
aws configure
Примеры команд:
aws s3 ls s3://bucket-name
aws s3 cp file.txt s3://bucket-name/
- MinIO (S3-совместимое хранилище)
Установите MinIO:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data
Используйте mc (MinIO Client) для управления:
mc alias set myminio http://localhost:9000 access_key secret_key
mc ls myminio/bucket
- Другие технологии
LVM (Logical Volume Manager): управление логическими томами для гибкого распределения дискового пространства поверх физических устройств.
Btrfs и ZFS: современные файловые системы с поддержкой снапшотов, дедупликацией и встроенными функциями RAID.
Btrfs — подходит для локальных дисков с возможностью динамического расширения.
ZFS — эффективен для серверных систем и больших хранилищ.
GlusterFS и Ceph: распределенные хранилища для больших объемов данных и высокодоступного хранения.
GlusterFS — прост в настройке, использует несколько серверов для репликации.
Ceph — масштабируемая система с поддержкой объектов, блоков и файлов.
Rclone: универсальный клиент. Позволяет подключаться к множеству облачных сервисов (Google Drive, OneDrive и т.д.)
Управление хранилищем может показаться сложным для начинающего администратора — каждая технология имеет свои особенности, и разобраться во всем этом многообразии бывает непросто. На курсе «Администрирование Linux» мы выделили целую тему, посвященную эффективному управлению локальными и сетевыми хранилищами:
- Основы управления дисками и файловыми системами
- Использование LVM (Logical Volume Manager)
- Настройка RAID массивов
- Управление разделами дисков (fdisk, parted)
- Практические задания
Старт нового потока курса — 24 марта. Ознакомиться с программой и присоединиться к изучению можно здесь.