Iscsi: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория:Linux]] |
||
+ | [[Категория:NetworkStorage]] |
||
+ | [[Категория:iSCSI]] |
||
+ | |||
==Постановка задачи== |
==Постановка задачи== |
||
Строка 4: | Строка 8: | ||
Утилизация диска: |
Утилизация диска: |
||
+ | {{Root|<nowiki> |
||
− | <PRE> |
||
+ | iostat -mtxz /dev/sd? 1 |
||
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util |
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util |
||
sda 0.00 85.00 0.00 175.00 0.00 964.00 11.02 108.41 686.58 5.71 100.00 |
sda 0.00 85.00 0.00 175.00 0.00 964.00 11.02 108.41 686.58 5.71 100.00 |
||
sdb 0.00 223.00 1.00 225.00 4.00 1804.00 16.00 1.82 8.07 1.36 30.80 |
sdb 0.00 223.00 1.00 225.00 4.00 1804.00 16.00 1.82 8.07 1.36 30.80 |
||
sdc 0.00 224.00 0.00 223.00 0.00 1804.00 16.18 2.47 11.06 1.57 35.00 |
sdc 0.00 224.00 0.00 223.00 0.00 1804.00 16.18 2.47 11.06 1.57 35.00 |
||
− | </ |
+ | </nowiki>}} |
+ | |||
Насколько я могу судить, в моем случае диск (относительно старый) был нагружен множеством мелких запросов, поток данных (в Мб/с) относительно небольшой. |
Насколько я могу судить, в моем случае диск (относительно старый) был нагружен множеством мелких запросов, поток данных (в Мб/с) относительно небольшой. |
||
Строка 121: | Строка 127: | ||
==Дальнейшее увеличение производительности подсистемы== |
==Дальнейшее увеличение производительности подсистемы== |
||
− | Т.к. я вижу, что производительности все еще недостаточно, то Есть мысль объединить 2 iSCSI-диска (или физический и iSCSI) с помощью AUFS. Для моего типа нагрузки (запись во |
+ | Т.к. я вижу, что производительности все еще недостаточно, то Есть мысль объединить 2 iSCSI-диска (или физический и iSCSI) с помощью AUFS. Для моего типа нагрузки (запись во множество мелких файлов) это теоретически даст равномерную балансировку нагрузки. |
==Аварийная ситуация== |
==Аварийная ситуация== |
Текущая версия на 11:08, 23 июля 2013
Постановка задачи
Задача: Есть сервер, на котром утилизация дисковой подсистемы близка к 100%. нужно максимально разгрузить дисковую подсистему, распараллелив задачи на несколько потоков.
Утилизация диска:
Насколько я могу судить, в моем случае диск (относительно старый) был нагружен множеством мелких запросов, поток данных (в Мб/с) относительно небольшой.
Диск используется как хранилище rrd-файлов для cacti.
Подготовка iSCSI-таргета
Создать файл, который будет использован как "диск". В моем случае так удорбнее, файл лежит на быстром массиве из 15К-rpm дисков.
Установить необходимое ПО
Загрузить модуль crc32
Вношу изменения в файл /etc/ietd.conf (остальные стрки закоментарены)
Target iqn.2009-09.ab.mordred:iSCSI.aradia.disk1 Lun 0 Path=/var/iscsi/aradia,Type=fileio MaxConnections 1 IncomingUser OutgoingUser Alias Aradia_Drive
Обратить внимание, пустые IncomingUser и OutgoingUser - обязательно, без них у меня не работало.
Запускаю сервис
dmesg <skipped> [12789475.395944] Loading iSCSI transport class v2.0-724. [12790177.495567] iSCSI Enterprise Target Software - version 0.4.17 [12790177.495633] iscsi_trgt: Registered io type fileio [12790177.495635] iscsi_trgt: Registered io type blockio [12790177.495637] iscsi_trgt: Registered io type nullio
Посде старта соответвенно, откут порт и запущен соответвующий процесс.
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 1814/ietd
iSCSI initiator
Установить open-iscsi
Запустить сервис:
Исследовать какие устройства есть на целевой системе
Подключить:
В логах
dmesg <skipped> [548181.601597] scsi5 : iSCSI Initiator over TCP/IP [548181.860961] scsi 5:0:0:0: Direct-Access IET VIRTUAL-DISK 0 PQ: 0 ANSI: 4 [548181.862415] sd 5:0:0:0: [sde] 12582912 512-byte hardware sectors (6442 MB) [548181.863446] sd 5:0:0:0: [sde] Write Protect is off [548181.863452] sd 5:0:0:0: [sde] Mode Sense: 77 00 00 08 [548181.865093] sd 5:0:0:0: [sde] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA [548181.872296] sd 5:0:0:0: [sde] 12582912 512-byte hardware sectors (6442 MB) [548181.881151] sd 5:0:0:0: [sde] Write Protect is off [548181.881160] sd 5:0:0:0: [sde] Mode Sense: 77 00 00 08 [548181.883161] sd 5:0:0:0: [sde] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA [548181.883171] sde: unknown partition table [548181.890757] sd 5:0:0:0: [sde] Attached SCSI disk [548181.890825] sd 5:0:0:0: Attached scsi generic sg4 type 0
Проверка работы
После копирования данных на iSCSI диск (в моем случае sde) и монтированя, имею:
iostat -mtxz /dev/sd? 1 Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util sda 0.33 18.63 44.56 166.64 0.18 0.72 8.78 6.59 31.18 4.28 90.37 sdb 0.63 318.09 2.78 246.87 0.05 2.23 18.66 0.34 1.20 1.18 29.38 sdc 0.63 318.99 2.77 245.91 0.05 2.23 18.74 0.83 3.16 1.21 29.97 sdd 0.00 13.26 0.00 0.03 0.00 0.01 807.22 0.17 5101.32 38.49 0.13 sde 0.00 4.07 3.40 11.55 0.01 0.06 10.18 1.72 114.77 1.19 1.78 25.09.2009 10:11:56 avg-cpu: %user %nice %system %iowait %steal %idle 21.13 0.00 12.29 43.24 0.00 23.34 Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util sdb 0.00 166.34 0.00 175.25 0.00 1.37 15.95 1.22 7.07 1.16 20.40 sdc 0.00 166.34 0.00 175.25 0.00 1.36 15.91 1.15 6.59 1.09 19.11 sde 0.00 1031.68 0.00 621.78 0.00 4.74 15.62 135.41 182.22 1.62 100.69
Т.е фактическая нагрузка распределилась по 2-м диска (т.к. часть данных все-таки осталось на первом)
Дальнейшее увеличение производительности подсистемы
Т.к. я вижу, что производительности все еще недостаточно, то Есть мысль объединить 2 iSCSI-диска (или физический и iSCSI) с помощью AUFS. Для моего типа нагрузки (запись во множество мелких файлов) это теоретически даст равномерную балансировку нагрузки.
Аварийная ситуация
Через несклько мес. работы, вышла из строя стевая карта на сервере-target. Однако, он оставался доступен через вторую сетевую карту.
В логах сервера, подключавшего диск
[6642421.061208] end_request: I/O error, dev sde, sector 2823272 [6642421.061224] sd 5:0:0:0: [sde] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK,SUGGEST_OK [6642421.061228] end_request: I/O error, dev sde, sector 2823272 [6642421.061245] sd 5:0:0:0: [sde] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK,SUGGEST_OK [6642421.061249] end_request: I/O error, dev sde, sector 2823272 [6642421.061266] sd 5:0:0:0: [sde] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK,SUGGEST_OK [6642421.061270] end_request: I/O error, dev sde, sector 2823272
и все процессы которые использовали этот диск стали "неубиваеми". Нагрузке LA ~40 (при среднем ~15 )
Решение- остановить службу iSCSI, выгрузить все модуди (rmmod -f), запустить службу, подключить диск по новому ip, подмонтировать в ту же точку. После этого у меня все заработало. Остановить сервер для замены сетевой карты к сожалению, возможности нет.