Iscsi
Материал из noname.com.ua
Постановка задачи
Задача: Есть сервер, на котром утилизация дисковой подсистемы близка к 100%. нужно максимально разгрузить дисковую подсистему, распараллелив задачи на несколько потоков.
Утилизация диска:
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 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
Насколько я могу судить, в моем случае диск (относительно старый) был нагружен множеством мелких запросов, поток данных (в Мб/с) относительно небольшой. Диск используется как хранилище rrd-файлов для cacti.
Подготовка iSCSI-таргета
Создать файл, который будет использован как "диск". В моем случае так удорбнее, файл лежит на быстром массиве из 15К-rpm дисков.
dd if=/dev/zero of=/var/iscsi/aradia bs=1024 count=6M
Установить необходимое ПО
emerge iscsitarget
Загрузить модуль crc32
modprobe crc32
Вношу изменения в файл /etc/ietd.conf (остальные стрки закоментарены)
Target iqn.2009-09.org.gentoo:iSCSI.test.disk1 Lun 0 Path=/var/iscsi/aradia,Type=fileio MaxConnections 1 IncomingUser OutgoingUser Alias Aradia_Drive
Обратить внимание, пустые IncomingUser и OutgoingUser - обязательно, без них у меня не работало.