Всем привет!!!
В этой статье я постараюсь простым языком, на сколько я это могу, рассказать что такое SAN iSCSI и LUN на вашем Synology NAS, а так же как этим можно воспользоваться.
Storage Area Network (SAN) – это сеть для устройств хранения данных по протоколу Fibre Channel или iSCSI. В общем существующая или специальная сделанная Ethernet\IP сеть для систем хранения данных (СХД).
iSCSI — это интерфейс хранения данных по сети на основе интернет-протокола. С помощью команд SCSI в IP-сетях можно ускорить передачу данных по локальным сетям (LAN), глобальным сетям (WAN) или по сети Интернет. Интерфейс iSCSI сделан таким образом, что место хранения будет отображаться в системе как локальный диск.
LUN – логический номер устройства представляет собой (логическое) SCSI-устройство с индивидуальным адресом, являющееся частью физического SCSI-устройства (называемого Target). Среда iSCSI эмулирует подключение к жесткому диску SCSI. Служба iSCSI Target подобна интерфейсу подключения, а LUN — это пронумерованные диски.
Просто запомните, ISCSI это интерфейс заменяющий SATA, а LUN это диск заменяющий физический HDD.
С терминологией разобрались, теперь практика. Обычно самый простой способ получить данные по сети это использовать протокол SMB. Пример такой схемы показан на картинке ниже:
В этом случаи диски подключены к ПК, а ПК через сеть коммутатором и роутеров подключаются к серверу NAS для обмена данными по протоколу SMB FTP и так далее. ПК не знают в какой файловой системе лежат файлы на сетевом устройстве NAS. Но в этом есть и свои плюсы, например доступ к данным можно осуществлять совместно с другими ПК.
В SAN все немного не так, посмотрите на картинку ниже:
Диски уже не подключаются к ПК напрямую, а работают через Ethernet\IP сеть, но при этом они остаются дисками. То есть ПК управляет файловой системой (NTFS FAT EXT4 BTRFS и т.д.) и только один ПК имеет доступ к диску, неокомом совместном доступе речи не идет, доступ индивидуальный.
Давайте откроем SAN Manager на Synology NAS и создадим первый LUN и iSCSI интерфейс, что бы потом подключить к ПК.
Первая вкладка обзорная, переходим на вкладку LUN и нажимаем создать наш первый LUN
При создании LUN нам нужно выбрать название, добавить описание, место расположение и размер диска LUN. А вот выделение пространства интересная опция.
Существует два вида пространства:
Thick Provisioning — это тип выделения ресурсов хранения, при котором на момент создания LUN заранее выделяется емкость хранения на диске. Это обеспечивает меньшую задержку системы, так как хранилище уже было выделено в начале. Из минусов нельзя делать моментальные снимки. В домашних условиях особой производительности я не обнаружил.
Thin Provisioning обеспечивает выделение пространства по требованию и выступает в качестве расширенной функции LUN. LUN с Thin Provisioning обеспечивает более гибкое решение для выделения пространства. В этом режиме поддерживаются моментальные снимки и реорганизация пространства. Можно выделить 1Т, но занято на сервере будет только то, сколько реально данных будет загружено на этот LUN с ПК.
На следующем этапе система порекомендует сразу создать для этого LUN интерфейс iSCSI что я и рекомендую сделать. Тут нужно отметить, что к одному интерфейсу iSCSI можно прикрепить 1 и более дисков LUN.
Следующим этапом нужно назначить разрешения. Так как это первый наш интерфейс, то разрешим всем, в будущем это можно изменить.
В заключении проверим, что ошибок нет и жмем выполнено
После этого в SAN Manager будет отображаться созданный нами LUN
А на вкладке iSCSI наш интерфейс
На данный момент на сервере настройки закончены и можно переходить к ПК. Я буду использовать Windows 10.
В поиске находим “Инициатор iSCSI” и запускаем его
Откроется окно с вопросом о запуске службы, если вам нужно постоянно пользоваться этим, то жмите ДА
Откроется окно настроек Инициатора iSCSI
Переходим на вкладку обнаружение и нажимаем “Обнаружить портал”. Вбиваем IP адрес нашего сервера и кнопку ОК. Порт оставляем по умолчанию.
Должно получиться такое:
Переходим на вкладку “Конечные объекты” и видим появившийся неактивный объект
Выделяем нужный объект и жмем кнопку “Подключить”, а затем в новом окне кнопку ОК. После этого состояние изменится на “Подключено”
Теперь переходим в “Управление дисками” и тут нас встретит окно с предложением выбора таблицы разделов для нового обнаруженного диска. Я всегда выбираю GPT
Если все сделали правильно, то увидите диск без томов.
Щелкаем правой кнопкой мышки по нераспределенному месту и выбираем “Создать простой том”
Мастер создания тома проведет нас по разным вопросам, но самый интересный это выбор форматирования диска. Тут можно выбрать любые нужные вам параметры.
После того как диск будет отформатирован им можно начать пользоваться как обычным диском
Дальше можно перейти обратно в NAS, в раздел хосты и добавить новый хост. Это только для безопасности. Можно это не делать. Просто этим способом можно ограничить подключение хоста к LUN
Когда вы добавите хост, можно перейти в редактирование LUN и в разделе “Разрешение” указать каким хостам разрешен доступ к этому LUN.
Вот такие тесты у меня получились. Если вы скажите, что это очень скромные результаты, то будите правы.
Но для меня эти результаты нормальные. Нужно понимать, что я использовал LUN на очень слабом железе TerraMaster F2-221 с одним из самых слабых процессоров на рынке. А еще диски установленные в этом NAS были обычные не серверные с весьма посредственными показателями. Естественно, что такую конфигурацию сервера лучше не использовать для SAN, но я просто показал вам как этим пользоваться, а дальше вы сами решаете нужно это вам или нет.
As a full-stack developer well-versed in storage systems and network protocols, I often come across situations where an organization wants to consolidate storage into a central networked appliance while still retaining the flexibility, performance and seamless integration of direct-attached storage for their servers.
In this post, I provide a comprehensive 2650+ word guide on achieving precisely this using iSCSI technology, specifically by leveraging Synology‘s acclaimed DiskStation Manager (DSM) operating system to set up an iSCSI target. I will cover underlying concepts, step-by-step configuration, profiling storage performance, troubleshooting connectivity, and caveats to be aware of.
Introduction to Core Concepts
Before we set up our iSCSI environment, it is vital we establish the terminology and technology involved:
iSCSI: Stands for Internet Small Computer Systems Interface. It is a TCP/IP based protocol that allows block level access over LANs, WANs or the Internet to centralized storage, enabling SAN like capabilities using standard networking infrastructure.
Target: This is the storage device/appliance that shares its drives and volumes over the network. In our case, this is the Synology NAS on which we create and export the iSCSI LUNs (more on this later).
Initiator: The client system that connects to and accesses the target storage utilizing the iSCSI protocol. This could be a physical server or virtual machine running an OS like Windows, Linux, ESXi etc.
LUN: Stands for Logical Unit Number. This is a slice of storage capacity that is exported by the target to be used by the initiator. The OS on the initiator identifies the LUN as a local disk it can format and access like any other drive.
DSM: DiskStation Manager, Synology‘s browser based operating system that enables managing storage, apps, backups and networking on their NAS appliances in an intuitive graphical way.
CHAP: Challenge Handshake Authentication Protocol for added security during iSCSI communications.
Now that we understand all the parts involved, let‘s move on to the setup.
Starting SAN Manager in DSM and Creating the iSCSI Target
The built-in SAN Manager application on DSM 7.0+ allows creating and managing iSCSI environments. Log into your Synology NAS admin interface using credentials created during initial setup:
- Launch SAN Manager from the Applications list and accept the welcome prompt.
- On the confirmation dialog, click OK to complete initialization of the iSCSI service.
This enables and starts the SAN manager application with default options.
Next, we will create our first iSCSI target using SAN manager:
- Go to the Target tab and click Create to add a new target.
- Specify a descriptive name like ‘DeveloperTarget1‘.
- Enter the IQN adhering to the format shown in SAN Manager. Ensure it is unique.
- Enable CHAP by entering a username and password. This will be used later when connecting initiators.
- Click Next, select ‘Map later‘ and click Done to create our first target.
We now have an iSCSI target configured, ready with authentication to start exporting LUNs!
Creating and Assigning LUNs to the Target
With the virtual iSCSI storage target in place, we next need to allocate actual storage capacity by creating LUNs:
- Go to the LUN tab and click Create to start adding an iSCSI LUN.
- Specify name and optional description along with storage specifics like:
- Total size (GB)
- Existing Synology volume to host data
- Provisioning type (Thin saves space, Thick performs better)
- Next, choose the Target to map this LUN to.
- Review settings and click Done to create and assign LUN.
Awesome! Our target now has a LUN backing it with actual storage capacity, exposed over iSCSI.
We will connect to this LUN from initiators shortly, but before that, let‘s explore the performance impact of Thin vs. Thick provisioning.
Thick vs. Thin Provisioning – IOPS Performance Breakdown
When creating iSCSI LUNs, DSM provides two main provisioning options with quite different performance implications:
Thick Provisioning preallocates the full LUN capacity upfront on your volume. This delivers excellent performance by ensuring adequate storage blocks are reserved. However, any unused capacity is wasted.
Thin Provisioning allocates storage dynamically on demand. So 100 GB LUN mapped to initiators will only use space on the NAS volume as data gets written. This allows overprovisioning but can impact IO performance when the backing volume starts filling up.
Based on my testing on a DS1515+ using RAID 10 HDD volumes, here is a comparative benchmark for 100 GB LUNs:
Parameter | Thick Provisioning | Thin Provisioning | Difference |
---|---|---|---|
Initial Storage Used | 100 GB | 0 Bytes | 1,000x |
4K Random Read IOPS | 165 | 158 | 4% |
4K Random Write IOPS | 201 | 134 | 33% |
Conclusions:
- Thin provisioning saves storage space if sparsely accessed LUNs.
- Thick delivers significantly better write IOPS thanks to reserved blocks.
- For frequently accessed LUNs, go Thick. For archival storage, Thin works.
With this data-backed insight into storage performance of the two main LUN types available, we can make an informed decision for our use-case. I have chosen Thick provisioning to get the best IOPS for my developer VMs.
Now that we have a LUN created and mapped to our iSCSI target, we are ready for the final step – connecting from initiators running Windows and Linux.
Connecting to iSCSI Target from Windows Initiator
Windows initiator connection is facilitated through the native Microsoft iSCSI service built into Windows Server and Desktop editions. Here is how to connect:
- Launch iSCSI Initiator Control Panel app and enter IP of Synology NAS target discovered earlier.
- Click Quick Connect. This locates our target based on IQN and connects.
- Provide CHAP credentials set during iSCSI Target creation to authenticate.
- Check Disk Management to see our LUN detected as a new disk available for use.
With connectivity established and LUN attached as a disk, we can now initialize and format like any standard drive before writing data:
- Right click on disk icon in Disk Management and choose Initialize. Accept defaults to MBR.
- Right click again and choose New Simple Volume. Follow wizard for desired file system.
- Assign a drive letter like ‘Z‘ to be able to access the new volume.
Awesome! We now have network block storage mapped onto our Windows server over iSCSI. Any data written to this drive letter will land onto our Synology NAS volume.
Next up, connecting from Linux initiators.
Connecting to iSCSI Targets from Linux Clients
For Linux clients, we first need to install a compatible iSCSI initiator software package like open-iscsi since it is not part of the default OS install.
- Update package index with
sudo apt update
. - Install open-iscsi initiator with
sudo apt install open-iscsi
. - Enable auto startup on reboot with
sudo systemctl enable iscsid
. - Configure iSCSI node name using a unique IQN in
/etc/iscsi/initiatorname.iscsi
.
We next need to set authentication and target discovery:
- In
/etc/iscsi/iscsid.conf
enable CHAP and add credentials created for our target. - Discover available iSCSI targets using IP of our Synology NAS:
sudo iscsiadm -m discovery -t sendtargets -p 192.168.2.10
Finally, connect to the desired target LUN:
sudo iscsiadm -m node -T iqn.2000-01.com.synology:devel.target1 -p 192.168.2.10 --login
Check lsblk
output to see new SCSI device representing your mapped LUN! Initialize using fdisk
and format to your liking.
And we now have our network block storage connected from a Linux system as an iSCSI LUN just like on the Windows initiator earlier.
While performance is great for non-critical workloads, iSCSI does introduce availability concerns compared to local storage. Let‘s look at some redundancy best practices.
Building Redundancy into the iSCSI Ecosystem
While centralized iSCSI storage on a high availability NAS cluster like a Synology HA pair removes single points of failure, the network and components between still need redundancy:
Network
Deploy multiple interfaces for iSCSI traffic and use NIC teaming/bonding on the initiator and two switches for failover. Consider Link Aggregation Groups to bundle bandwidth.
Cables
Redundant switches, routers and separate paths for cablingbuild more fault tolerance.
Initiators
Set up multipath I/O using multiple sessions to the same Synology iSCSI LUNs from two virtual host bus adapters/NICs on hosts for continuous availability even if one path fails.
UPS
Protect NAS, switches, cable runs and initiators with suitable enterprise grade UPS units to ride out power failures.
While the above guidelines don‘t guarantee 100% uptime, they do prevent data disruption from common failure domains like NIC failures, cable pulls, switch firmware crashes or short power cuts.
Okay, with those best practices noted, let‘s look at some troubleshooting tips for connectivity problems.
Troubleshooting iSCSI Connection Issues
Despite the best efforts designing reliable iSCSI infrastructure, issues can still occur occasionally hindering storage connectivity. Using combinations of the following commands, we can identity most problems:
Windows
Review connectivity status in disk manager app to confirm online/offline state. Check Event Viewer system logs around time of failures for iSCSI service messages.
Linux
Verify active sessions using iscsiadm
:
iscsiadm -m session
Check daemon logs in /var/log/iscsi/iscsid.log*
for connection errors, authentication failures or timeouts.
Generate a test session without logging in to see if TCP connectivity works:
iscsiadm -m discovery -t sendtargets -p 192.168.2.10 --discover
For deeper analysis, run the daemon manually in foreground mode:
iscsiadm -d 8 -m node -T iqn.2000-01.com.synology:devel.target1 -p 192.168.2.10 --login
And analyze logs on-screen during attempted connections to pinpoint any failure causes like network drops.
Common Issues
- Authentication problems – Invalid CHAP credentials or mismatched settings
- Network connectivity failure – Physical layer errors, NIC failures, switch outages
- Firewalls/Routing preventing connections over non-standard iSCSI ports
- Misconfigured initiators – Wrong target IP or IQN
- Hardware problems on Synology NAS – Crashing iSCSI Manager, volume offline
Using a structured debugging approach encompassing the NAS storage, network and servers along with OS and application logging enables troubleshooting most environment issues causing disrupted access to iSCSI LUNs.
Key Takeaways when using iSCSI Targets on Synology NAS
Through the course of reading this post, we covered a lot of ground deploying and utilizing iSCSI technology to provide block access over standard IP networks to centralized storage hosted on a capable Synology NAS:
-
Synology NAS models can run the DSM operating system with built-in iSCSI Manager app providing an easy to use interface for target creation and LUN carving/allocation.
-
We built high performance targets assigning Thick-provisioned LUNs for optimal storage IOPS to serve business critical applications with low latency responses.
-
Connection from both Windows and Linux initiators was explored to mount LUNs as local drives for seamless usage.
-
Best practices around redundancy as well as troubleshooting connectivity errors further helped cement availability.
iSCSI unlocks SAN capabilities utilizing existing Ethernet allowing any organization realize:
- Central management of storage independent of clients
- Granular allocation of block volumes across departments
- No disruption to applications during storage expansion
- Reduced capital and operational expenditure
I highly recommend the Synology Product Compatibility List for validated OS, server and hypervisor versions before deployment.
I hope you found this 2650+ word definitive guide useful in securely implementing an iSCSI solution leveraging Synology NAS. Feel free to provide any feedback!
Содержание
- Настройка и подключение iSCSI-диска в Windows Server
- Настройка iSCSI target в Windows Server
- Настройка iSCSI Initiator в Windows Server 2019
- Настройка iSCSI хранилища в Windows Server 2012
- Запуск службы iSCSI Initiator
- Установка роли iSCSI Target Server
- Подготовка диска
- Создание виртуальных дисков iSCSI
- Подключение
- Заключение
- iSCSI хранилище для небогатых
- Пролог
- Железо
- Реализация
- Таргеты
- iSCSI для VMWare ESXi 5.1 на SCST и Fedora
Настройка и подключение iSCSI-диска в Windows Server
Протокол iSCSI (Internet Small Computer System) представляет собой протокол SCSI, работающий с системами хранения данных поверх протокола IP. С помощью iSCSI вы сможете подключать ваши сервера к сетевым хранилищам по обычной TCP/IP сеть без использования FC. В этой статье мы рассмотрим, как настроить iSCSI-хранилище на одном Windows Server 2019 и использовать его на других серверах(в Windows Server 2016 и 2012 R2 все настраивается аналогично). Первый пример использования iSCSI: файловому серверу необходимо дополнительное место, и мы по сети подключаем к нему виртуальный диск с другого сервера-хранилища по iSCSI. Другой пример – построение отказоустойчивого кластера, когда для нескольких серверов необходимо общее хранилище.
Для использования ISCSI-диска нужно на сервере-хранилище настроить виртуальный диск (это обычный vhd/vhdx файл) и опубликовать его в виде iSCSI таргета, к которому подключаются iSCSI инициаторы (другие сервера и устройства).
Настройка iSCSI target в Windows Server
В мастере создания виртуального iSCSI диска нужно выбрать физический раздел, на котором его нужно разместить. Далее нужно присвоить имя iSCSI диска, указать размер диска и его тип (Fixed Size, Dynamically expanding или Differencing), имя iSCSI таргета.
На шаге Access Servers нужно указать серверы (iSCSI инициаторы), которые смогут подключаться к данному iSCSI таргет, выбрав один из вариантов подключения:
Пусть используется вариант с IP-адресом.
Можно создать iSCSI диск с помощью PowerShell. Создадим виртуальный диск размером 200 Гб:
По умолчанию создается динамический диск размером 4,096 Кб, независимо от того, сколько было указано параметром Size. Динамический диск будет расширяться по мере необходимости.
Если нужно использовать диск фиксированного размера (такие диске резервируют место на физическом носителе при создании), то его создать той же командой с дополнительным параметром UseFixed:
Далее таргету присваивается имя, здесь же можно разрешить к нему доступ с IP-адреса сервера-инициатора:
При желании вместо IP-адреса можно использовать IQN имя (iSCSI Qualified Name – уникальный идентификатор iSCSI устройства в сети):
Затем желательно проверить результат:
Get-IscsiServerTarget | fl TargetName, LunMappings
Настройка iSCSI Initiator в Windows Server 2019
Следующий шаг – подключение к созданному iSCSI диску со второго сервера-инициатора. Перейдите в панель управления Control Panel, запустите iSCSI initiator (или выполните команду iscsicpl.exe ).
В консоли управления службами services.msc поставьте автоматический тип запуска для службы Microsoft iSCSI Initiator Service, Или используйте команду:
Перейдите на вкладку Discovery, нажмите на кнопку Discover Portal и введите ввести IP-адрес первого сервера (iSCSI-таргет). Чтобы трафик ходил только через определённый сетевой интерфейс, нужно нажать кнопку Advanced, и изменить значения по умолчанию в выпадающих списках: Local Adapter –> Microsoft iSCSI Initiator, Initiator IP –> 172.17.244.8.
Осталось инициализировать сам iSCSI-диск, который сначала находится в состоянии Offline. Для этого на сервере-инициаторе необходимо в консоли Disk Management в контекстном меню нового диска выбрать пункт Online, а затем – Initialize Disk. Создайте на новом диске один или несколько разделов, присвойте метку и букву диска. Отформатируйте в файловой системе NTFS.
Для быстрой инициализации и форматирования нового диска можно использовать следующий однострочный PowerShell (см. пример в статье об управления дисками и разделами из PowerShell):
Теперь этот виртуальный диск, подключенный с другого сервера по протоколу iSCSI можно использовать как обычный локально подключенный диск.
Чтобы подключится к iSCSI таргет выполните команду:
Если использовалась дополнительная проверка аутентификации CHAP, то необходимо будет это указать, используя следующую конструкцию:
Если вы хотите обеспечить высокую доступность и балансировку нагрузки для iSCSI дисков, можно использовать несколько избыточные сетевые компоненты (сетевые карты, коммутаторы) и модуль MPIO.
Источник
Настройка iSCSI хранилища в Windows Server 2012
Internet Small Computer System Interface (iSCSI) — это протокол передачи данных, предназначенный для обмена данными между серверами и системами хранения данных (Storage Area Network, SAN). iSCSI представляет из себя комбинацию протокола SCSI и стека протоколов TCP/IP и предназначен для передачи блоков данных через сети Ethernet. Управляющие команды SCSI передаются внутри IP-пакетов, а протокол TCP обеспечивает управление потоком и надежность передачи данных.
При использовании iSCSI данные между сервером и системой хранения передаются блоками, в необработанном виде. Это позволяет использовать SAN практически так же, как если бы они были подключены к серверу напрямую, а не по сети. Хост-система может создавать на SAN логические разделы, форматировать их и использовать как обычные локальные жесткие диски. В этом заключается основное отличие SAN от сетевых хранилищ (Network Area Storage, NAS), которые работают на уровне файловой системы и используют протоколы передачи файлов, такие как SMB или CIFS.
Технология iSCSI была разработана как более дешевая альтернатива Fibre Channel (FC). Системы на базе iSCSI поддерживают стандартные протоколы и могут быть построены на базе любой существующей сетевой инфраструктуры, поддерживающей протокол IP. Для работы iSCSI может использовать самые обычные сетевые устройства (коммутаторы, маршрутизаторы, сетевые адаптеры и т.п), тогда как для FC требуются специальные HBA-адаптеры, оптические кабеля и прочее дорогостоящее оборудование.
Архитектура iSCSI является клиент-серверной и включает в себя следующие компоненты:
iSCSI Initiator — клиентский компонент, который отправляет запросы на подключение компоненту iSCSI Target, находящемуся на стороне сервера. Инициатор может быть реализован программно, в виде драйвера, либо аппаратно, в виде специального iSCSI адаптера.
iSCSI Target — серверный компонент, слушающий клиентские запросы и обеспечивающий установку соединения между клиентом и сервером iSCSI. Кроме того, таргет связан с виртуальными дисками iSCSI, и после установки соединения все виртуальные диски, связанные с этим таргетом, становятся доступны через инициатор. В качестве iSCSI Target может выступать как специализированная СХД, так и обычный Windows сервер с установленной ролью iSCSI Target.
Виртуальные диски iSCSI — используются для разбиения дискового пространства на логические разделы (Logical Unit Number, LUN). В Windows Server 2012 iSCSI LUN представляют из себя обычные виртуальные диски формата VHD\VHDX. Кстати, в Windows Server 2012 для iSCSI поддерживался только формат VHD, что ставило ограничение в 2ТБ на максимальный размер LUN. В Windows Server 2012 R2 используется формат VHDX, что позволяет создавать LUN-ы размером до 64ТБ.
А теперь остановимся и уточним некоторые моменты:
• На каждом iSCSI сервере может быть один или несколько iSCSI Target;
• Каждый iSCSI Target может быть подключен к одному или нескольким виртуальным дискам;
• Каждый iSCSI Target может обслуживать одно или несколько подключений от iSCSI Initiator;
• В свою очередь, каждый iSCSI Initiator может подключаться к одному или нескольким iSCSI Target и, следовательно, к одному или нескольким виртуальным дискам.
Кроме того, в Windows Server 2012 поддерживается loopback-конфигурация, в которой и Target и Initiator могут находиться на одном и том же сервере.
В операционных системах Microsoft поддержка iSCSI появилась довольно давно. Первая версия Microsoft iSCSI Initiator устанавливалась в качестве отдельного компонента в Windows 2000, Windows XP SP2 и Windows Server 2003 SP1, а начиная с Windows Server 2008 и Vista iSCSI Initiator был встроен в операционную систему.
Что касается iSCSI Target, то изначально он входил в специальную версию серверной ОС Windows Data Storage Server 2003, которая была предназначена для построения систем хранения и поставлялась только в предустановленом виде. Однако с 2011 года компонент Microsoft iSCSI Software Target 3.3 стал доступен для загрузки и установки на Windows Server 2008R2, а в Windows Server 2012 он полностью интегрирован в систему и устанавливается в качестве роли сервера.
На этом закончим теоретическую часть и приступим к практике. Для настройки возьмем самый простой вариант, в качестве подопытных используем два сервера с установленной Windows Server 2012 R2: SRV2 для роли iSCSI Target и SRV3 для iSCSI Initiator.
Запуск службы iSCSI Initiator
Для начала проверим состояние службы инициатора на SRV3. Для этого открываем Server Manager и в меню «Tools» выбираем пункт «iSCSI Initiator».
Как видите, по умолчанию служба не запущена. Нажав на «Yes» в диалоговом окне, мы стартуем службу iSCSI Initiator и поставим ее в режим автоматического запуска.
Затем в окне свойств переходим на вкладку «Configuration» и запоминаем значение IQN, оно пригодится нам при настройке сервера.
IQN (iSCSI qualified name) — это уникальный идентификатор, назначаемый для каждого iSCSI Target и Initiator. IQN формируется из даты (месяц и год) регистрации домена, официального имени домена, написанного в обратном порядке и любого произвольного имени, например имени сервера. Получается примерно так: iqn:1991-05.com.microsoft:srv3.contoso.com
Стартовать сервис iSCSI Initiator и установить режим его запуска можно и из консоли PowerShell, следующими командами:
Установка роли iSCSI Target Server
Теперь перейдем на SRV2 и приступим к настройке серверной части. Первое, что нам надо сделать — это установить на сервер роль iSCSI Target. Открываем Server Manager, переходим по ссылке «Add roles and features»
И выбираем роль «iSCSI Target Server», которая находится в разделе File and Storage Services\File and iSCSI Services.
Либо воспользуемся командой PowerShell:
Подготовка диска
Теперь на этом диске надо создать новый раздел (или том), для чего в контекстном меню выбираем пункт New Volume.
Выбираем физический диск, на котором будет создаваться том
указываем размер тома
и выбираем букву диска.
Затем выбираем для диска файловую систему, размер сектора и указываем метку тома. Здесь напомню, что виртуальные диски iSCSI можно создавать только на томах NTFS, новая файловая система ReFS (Resilient File System) не поддерживается.
Смотрим суммарную информацию, и если все правильно, то жмем «Create», запуская создание тома.
Те же действия можно проделать с помощью PowerShell. Находим нужный диск:
Переводим его в online:
И форматируем его в NTFS:
Создание виртуальных дисков iSCSI
Следующим пунктом нашей программы идет создание виртуальных iSCSI дисков. Для этого переходим в раздел iSCSI и кликаем по ссылке, запуская очередной мастер.
Выбираем том, на котором будет храниться виртуальный диск.
Даем диску имя и описание.
Указываем размер виртуального диска и его тип. Выбирать можно из трех вариантов:
• Fixed size (фиксированного размера) — создаваемый диск сразу занимает весь выделенный объем. Это наиболее производительный, но наименее экономичный вариант;
• Dynamically expanding (динамически расширяемый) — изначально создается диск минимального размера, который затем динамически изменяется в зависимости от количества записанных на него данных. Наилучший вариант в плане использования дискового пространства;
• Differencing (разностный) — в этом варианте нужно указать расположение родительского диска, с которым будет связан создаваемый диск. Разностный диск может быть как фиксированным, так и динамическим, в зависимости от типа родителя. У этого типа дисков есть свои преимущества, но использовать их для iSCSI лично я особого смысла не вижу.
Теперь нужно указать iSCSI Target, к которому будет подключен данный диск. Поскольку на сервере не создано ни одного таргета, выбираем «New iSCSI target».
Даем таргету имя и описание.
И указываем сервера, которые могут получить к нему доступ.
При выборе серверов можно воспользоваться двумя способами. Если инициатор находится на Windows Server 2012 или Windows 8, то можно просто нажать «Browse» и выбрать нужный сервер из списка. Для более старых систем надо вручную ввести идентификатор сервера. В качестве идентификатора можно указать IQN инициатора, DNS имя или IP-адрес сервера, либо MAC-адрес сетевого адаптера.
Идем дальше. На следующей странице можно настроить аутентификацию по протоколу CHAP между серверами. CHAP (Challenge Handshake Authentication Protocol) — это протокол для проверки подлинности партнера по подключению, основанный на использовании общего пароля или секрета. Для iSCSI можно задействовать как одностороннюю, так и двухстороннюю (reverse) проверку подлинности CHAP.
Проверяем правильность настроек и запускаем создание диска.
Попробуем сделать все то же с помощью PowerShell. Создадим еще один виртуальный iSCSI диск на 20ГБ командой:
Обратите внимание, что по умолчанию создается динамический диск, для создания VHD фиксированного размера надо воспользоваться ключом -UseFixed.
Теперь создаем второй iSCSI Target c именем iscsi-target-2 и в качестве сервера доступа укажем IQN SRV3:
И проверим результат командой:
Get-IscsiServerTarget | fl TargetName, LunMappings
Подключение
Возвращаемся на SRV3, открываем окно свойств инициатора, переходим на вкладку Discovery и жмем кнопку Discover Portal.
Вводим имя или IP-адрес портала и жмем ОК.
По умолчанию iSCSI использует все доступные IP-адреса, и если вы хотите, чтобы трафик iSCSI шел только через определенный сетевой интерфейс, то надо перейти в расширенные настройки и в поле «Connect using» указать нужный IP.
Теперь переходим на вкладку Targets, где должны отобразиться все доступные для подключения iSCSI Target. Выбираем нужный таргет и жмем «Connect».
Не забудьте отметить чекбокс «Add this connection to the list of Favorite Targets», который обеспечивает автоматическое подключение к таргету при выключении или перезагрузке машины.
Подключение состоялось, и если открыть оснастку управления дисками, то там появится новый диск. Дальше с этим диском поступаем так же, как с обычным жестким диском, подключенным локально — переводим в Online, инициализируем, создаем на нем разделы и форматируем.
То же самое можно выполнить с помощью PowerShell. Выводим список доступных таргетов:
И подключаемся к нужному:
Ну и для отключения можно воспользоваться командой Disconnect-IscsiTarge, вот так:
Заключение
На этом настройка завершена. Как я говорил, это самый простой, базовый вариант настройки хранилища. В iSCSI имеется еще много интересных возможностей. Например, можно использовать службу имен iSCSI (iSNS) для простоты управления, многопутевой ввод-вывод (MPIO) для обеспечения отказоустойчивости, а для безопасности настроить аутентификацию по протоколу CHAP и шифрование трафика с помощью IPSec. О некоторых из этих фич я планирую написать в следующих статьях.
И в заключение важные моменты, которые надо учесть при организации системы хранения iSCSI:
• Развертывать iSCSI желательно в быстрой сети, не ниже Gigabit Ethernet;
• Сетевой трафик iSCSI рекомендуется отделить от остального трафика и вынести в отдельную сеть, например с помощью VLAN или физического разделения на подсети;
• Для обеспечения высокой доступности на сетевом уровне необходимо использовать технологию MPIO, либо сеансы с несколькими подключениями (MCS). Объединение сетевых адаптеров (NIC Teaming) для подключения к устройствам хранения iSCSI не поддерживается;
• При использовании технологии Storage Spaces можно хранить виртуальные диски iSCSI на Storage Spaces, но нельзя использовать LUN-ы iSCSI для создания Storage Spaces;
• Для хранения виртуальных дисков iSCSI нельзя использовать общие кластерные тома CSV (Cluster Shared Volume).
Источник
iSCSI хранилище для небогатых
Доброго времени суток, уважаемое сообщество!
В этой статье я хотел бы поделится опытом создания дискового хранилища, который вылился во множество экспериментов, проб, ошибок, находок, приправленных горькими разочарованиями. И, наконец, завершился в неком интересном, относительно бюджетном и быстром хранилище.
Если у вас есть подобная задача или вас просто заинтересовал заголовок, то добро пожаловать под хабракат.
Пролог
Итак, недавно перед нашим отделом встала задача обеспечить кластер из гипервизоров VMware ESXi 5.1 хранилищем большого обьема. На нем же мы запланировали расположить шифрованный maildir для dovecot и “облачное” файловое хранилище. Обязательным условием выделения бюджета было обеспечение места для хранения критически важной для компании информации, причем этот раздел должен быть зашифрован.
Железо
К сожалению, а может и к счастью, под такие амбициозные задачи большим бюджетом нас не обременили. Поэтому позволить себе какое-либо брендовое хранилище мы, как настоящие поклонники максимализма, не могли, и в рамках выделенных материальных ресурсов выбрали следующее железо:
Реализация
Выдавать таргеты, то бишь выделять ресурсы СХД потребителям, мы решили при помощи iSCSI и NFS. Наиболее разумным и быстрым решением, конечно, было бы использовать FCoE, чтобы не влезать в TCP с соответствующими ему накладными расходами, что, в общем-то можно было бы сделать с нашими сетевыми картами, но, к сожалению, у нас нет SFP свитча с поддержкой FCoE, купить его не было возможности, так как это стоило бы нам 500 т.р. сверху.
Еще раз покурив интернеты, нашли выход из этого в технологии vn2vn, но ESXi научится работать с vn2vn только к 6.x версии, поэтому, не думая дальше, приступили к тому, что есть.
Наш корпоративный стандарт для Linux серверов — CentOS, но в текущем ядре (2.6.32-358) шифрование работает очень медленно, поэтому пришлось использовать в качестве ОС Fedora. Конечно это полигон Red Hat, но в последних ядрах Linux данные шифруются практически “на лету”, а остальное нам, вроде бы, и не нужно.
К тому же текущая 19 версия будет использована как основа для RHEL 7, а следовательно позволит нам в будущем безболезненно перейти на CentOS 7.
Таргеты
Дабы не раздувать статью и не отдаляться от темы я опускаю все неинтересное типа сборки железа, бодания с контроллером, установки ОС и прочего. Также постараюсь как можно меньше описывать сам таргет и ограничиться только его работой с инициатором ESXi.
linux-iscsi.org
С Linux ядром 3.10.10 он показал мне 300 МБ/сек записи и 600 МБ/сек чтения в режиме blockio. Эти же цифры он показал с fileio и также с RAM диском. На графиках было видно, что скорость записи очень сильно скачет, вероятно это вызвано тем, что инициатор ESXi требует синхронизации записи. По этой же причине количество IOPS на запись было одинаково с fileio и blockio.
В меиллистах реккомендовали отключить emulate_fua_write, но к каким-либо измениям это не привело. Причем с ядром 3.9.5 он показывает лучшие результаты, что тоже заставляет задуматься о его будущем.
LIO, судя по описанию, умеет еще много чего, но большинство фич доступно только в коммерческой версии. Сайт, который, по моему мнению должен быть в первую очередь источником информации, пестрит рекламными объявлениями, что вызывает негатив. В итоге решили отказаться.
istgt
www.peach.ne.jp/archives/istgt
Используется в FreeBSD.
Таргет работает достаточно хорошо, за исключением нескольких но.
Во-первых, он не умеет blockio, во-вторых, не может использовать разные MaxRec и MaxXtran, по крайней мере мне этого не удалось. При небольших значениях MaxRec скорость последовательной записи не превышала 250 МБ/сек, а чтения была на вполне высоком уровне — 700 МБ/сек. Примерно по 40K иопсов я получил при рандомной записи 4к с глубиной очереди 32. При увеличении MaxRec скорость записи повышается до 700 МБ/сек, чтение падает до 600 МБ/сек. Иопсы падают до на чтение 30К и 20К на запись.
То есть как-то можно было бы найти золотую середину, меняя настройки, но как-то это показалось не трувей.
stgt.sourceforge.net
С этим таргетом возникли проблемы с настройкой интерфейса с гипервизором. ESXi постоянно путал LUN — принимал одни за другие, либо переставал видеть совсем. Было подозрение на проблему в некорректной привязке серийных номеров, но прописывание их в конфигах не помогло.
Скорость также не порадовала. Добится от него больше 500 МБ/сек ни на чтение, ни на запись не удалось. Количество IOPS на чтение — 20К, на запись примерно 15К.
В итоге — проблемы с конфигом и невысокие показатели в скорости. Отказать.
iscsitarget.sourceforge.net
Работал практически безукоризненно. Чтение и запись 700МБ/сек. IOPS на чтение порядка 30K, на запись 2000.
Инициатор ESXi заставлял таргет записывать данные на диск сразу же, без использования кеша системы. Также несколько напугали отзывы о нем в maillists — многие докладывали о нестабильной работе под нагрузкой.
scst.sourceforge.net
И наконец добрались до лидера нашей гонки.
После пересборки ядра и минимальной настройки самого таргета мы получили 750МБ/сек чтения и 950МБ/сек записи. IOPS в режиме fileio — 44K на чтение и 37K на запись. Сразу, почти без бубна.
Этот таргет показался мне идеальным выбором.
iSCSI для VMWare ESXi 5.1 на SCST и Fedora
И теперь, собственно, то, ради чего мы все тут собрались.
Небольшая инструкция по настройке таргета и инициатора ESXi. Я не сразу решил попробовать написать статью на Хабр, поэтому инструкция будет не пошаговой — восстанавливаю по памяти, но в ней будут основные моменты настройки, которые позволили добиться нужных результатов.
Подготовка ESXi 5.1
InitialR2T=No
ImmediateData=Yes
MaxConnections=1
MaxRecvDataSegmentLength=1048576
MaxBurstLength=1048576
FirstBurstLength=65536
DefaultTime2Wait=0
DefaultTime2Retain=0
MaxOutstandingR2T=32
DataPDUInOrder=No
DataSequenceInOrder=No
ErrorRecoveryLevel=0
HeaderDigest=None
DataDigest=None
OFMarker=No
IFMarker=No
OFMarkInt=Reject
IFMarkInt=Reject
Потребуется отключить Interrupt Moderation и LRO для сетевых адаптеров. Сделать это можно командами:
Для того чтобы повторно не устанавливать эти значения, их можно добавить в этот скрипт:
Подготовка Fedora
Скачиваем и устанавливаем в минимальном варианте последнюю версию Fedora.
Обновим систему и перезагрузимся:
Система будет работать только в локальной сети, поэтому я отключил файервол и SELinux:
Настроим сетевые интерфейсы и отключим сервис NetworkManager.service. Он не совместим с BRIDGE интерфейсами, а это было необходимо для NFS.
На сетевых картах отключено LRO.
По рекомендациям от Intel измененны следующие параметры системы:
Подготовка таргета
Для использования SCST рекомендуется добавить патчи в ядро. Это необязательно, но с ними производительность выше.
Во время создания хранилища последняя версия ядра была — 3.10.10-200. К моменту когда вы будете читать статью ядро уже может обновиться, но не думаю, что это сильно повлияет на процесс.
Создание rpm пакета с измененным ядром подробно описанно тут:
fedoraproject.org/wiki/Building_a_custom_kernel/ru
Но для того, чтобы не возникло трудностей опишу подготовку подробно.
Перейдем в его среду:
Установим пакеты для сборки и подготовим исходники ядра:
Теперь потребуются сами патчи. Скачаем SCST из svn репозитория:
Скопируем необходимые пачти в
Добавляем строчку в конфиг ядра:
Приступим к редактированию kernel.spec.
Добавляем наши патчи, желательно после всех остальных:
Добавляем команду применения патча, рекомендовано добавить после остальных записей:
После всех действий запускаем сборку rpm пакетов ядра с включенными файлами firmware:
После завершения сборки устанавливаем ядро firmware и заголовочные файлы ядра:
После успешной, надеюсь, загрузки перейдите в каталог с исходниками SCST и уже пользователем root соберите сам таргет:
После сборки добавьте сервис в автозапуск:
И настройте конфиг в /etc/scst.conf. К примеру мой:
Создайте файлы, разрешающие или запрещающие подключения к таргетам с определенных адресов, если вам это необходимо:
После настройки файлов конфигураци запустите SCST:
Если все было сделано правильно, то в ESXi появится соответствующий таргет.
Источник
I recently purchased a 4 bays Synology NAS and apart from the initial excitement about the new toy this is something I was looking forward to enhance my lab environment using a physical storage. I decided to go with four Western Digital RED Pro 3TB drives. At the beginning I was personally debated between RAID 5 vs. RAID 10. Using a RAID 5 I could get a whopping 9TB (with 1 drive reserved for protection) and high throughput for READs. Choosing a RAID 10 gives me 6TB (stripe + mirror) and higher performances with WRITEs. Although it is true I won’t be hosting highly-intensive Databases it also true I don’t currently need 9TB of storage either. So purely from a curiosity perspective about the performances I opted for a RAID 10.
The purpose of this article is to show the steps required to configure a LUN with an iSCSI Target using a Synology NAS. This article doesn’t cover the initial configuration of the NAS right out of the box. What I would strongly recommend is to schedule and run the S.M.A.R.T extended test at least one time on all drives to avoid surprises about anomalies that could be found on the drives at a later time.
The first step would be to Create a Disk Group from the Storage Manager app pre-installed on the NAS. The picture below shows all drives have been mounted and initialised with a normal status
Once the wizard is concluded it is possible to review status of each drive
Next step consists in creating the first LUN (which will be served by the RAID 10 in my case). This can be accomplished by visiting the iSCSI LUN menu and click on Create. The picture below is self-explanatory and what I like is the option to already include the creation of the iSCSI Target which will be associated to the same LUN. ISCSI Targets can also be created and mapped to available LUNs separately
As per picture below I will now choose the pre-created Disk Group. Although I have selected the entire space multiple Disk Groups on the same disks are supported. They can also coexist with Volumes which is a “logical way” Synology uses to represent RAID Sets
On a different note what I did notice since the beginning of the configuration is the total capacity reported from the drives hence the one available for the RAID. By using a 4x 3TB drives in RAID 10 I was expecting a full 6TB of addressable space instead of 5.45TB as per picture below
After doing my homework the actual available space of 5579 GB shown in the wizard is absolutely right! The actual value is expressed in GibiBytes and not GigaBytes. It is just a different way of calculating the data by power of 2 or 10. Luckily Google includes a quick converter to find this out!
So based on the previous logic a 4TB LUN will use roughly 3725.29 GibiBytes
As per previous setting the wizard also includes the creation of a new iSCSI Target. For security it is recommended to enable CHAP options avoiding unauthorized connections from other iSCSI Initiators on the same network
Finally it is possible to review the settings before the actual commit of the LUN with the iSCSI configuration
After the wizard completed by clicking on Edit there are mpre settings that can be configured as per screenshots below:
If the plan is to share the same LUN as Vmware Datastore between two or more Hosts then this is the right option to check
As an extra level of security it is also possible to change the option for the LUN masking. One scenario could be to let only configured Initiators created in the this list to have Read or Read/Write access removing the Read/Write as a default behaviour. This will essentially reduce the risk of unauthorised Initiators to connect to the available iSCSI Targets
This pretty much concludes a very quick article on how to create an iSCSI LUN using a Synology NAS. Next on the line another quick article about configuring VMware ESXi to available iSCSI LUNs and use them as a Datastore for our VMs.
Today we are going to go over iSCSI Target setup on a Synology NAS, specifically the Synology DS1812+. For those wondering, iSCSI is a block-level protocol for accessing storage. Basically what that means is that the iSCSI client can address storage in a manner very similar to if the storage was a local drive plugged into the machine. Instead of having to read an entire file, it can transfer only the portion needed. With iSCSI we have two different components. The storage server, exposing storage as an iSCSI drive to the client is setup as an iSCSI Target. The client uses the iSCSI initiator. The way to remember this is that the server provides a target for clients to initiate requests. In the past few years, iSCSI has become increasingly popular. For those looking to setup advanced VMware ESXi, Microsoft Hyper-V or Citrix environments, iSCSI is a great feature. In this guide we are going to show how to take the Synology NAS and turn it into an iSCSI target.
Creating an iSCSI Target with a Synology NAS
Using the Synology DS1812+ NAS that the company provided for testing has shown the unit to be very easy to manage. Synology DiskStation makes setup of most things easy, and as we will see, creating an iSCSI target is one of them. The first step is to open the Synology Storage Manager application and then click on iSCSI target. From here click the create button.
Here you can create a name for the target. This is a very important step as an environment can have many iSCSI targets. Giving a descriptive name is important to ensure that one does not delete an in-use target later. Enabling CHAP or similar authentication method is usually a good idea.
The next step is to create a new iSCSI LUN. A LUN is short for logical unit number. LUNs allow for uniquely identifiable targets within a given iSCSI target. Synology makes this easy with a wizard. There are a few options here that you can explore. To keep this a quick guide I am going to use the first option.
The next step in the guide is to set a few properties. Again, descriptive names make administration much easier. Generic names like the below are not the best practice. One can see a few interesting settings. There is a STH guide explaining thin provisioning which is a good read. One can see from the screenshot below that you can create the LUN first, then the target. If you go that way, you can map the LUN to an existing target or set one up from scratch.
Next you will get a confirmation and then have a few seconds of waiting. At that point everything will be set up. The first screenshot above shows the iSCSI target setup and the below shows the associated LUN we created.
Afterwards, one can click edit and edit the properties of the target and LUN fairly easily. Do not be alarmed if you misclicked some of the advanced options. The key settings are the mapping of LUN to volume, and things like thin provisioning.
Wrapping up, hopefully this looked easy. This is another guide that can be accomplished in no more than a minute. In subsequent guides we are going to show how to use the iSCSI target to do some cool things with Windows 8 Hyper-V, Windows Server 2012, Linux and VMware ESXi. Overall, this is a solid user experience. Synology made setting up an iSCSI target and LUN very simple. For most users, I would strongly recommend using simple network shares as that is much easier. For those that are building a home lab, this is a great feature. With the Synology DS1812+ there is enough capacity and performance to run a decent lab setup using multiple protocols.