W którą stronę ewoluuje konfigurowanie Linuksa...



Ostatnio przemigrowałem z tgt na nowy, lepszy, wbudowany w jądro LIO. Chodzi o cel SCSI. Po robocie odsunąłem się od monitorów, spojrzałem na stary config, spojrzałem na nowy i naszła mnie refleksja.

Czy przejście z takiego sposobu konfigurowania:

vendor_id UTC FS Support
product_id Linux iSCSI

# Set the driver. If not specified, defaults to "iscsi".

default-driver iscsi

<target iqn.2010-08.com.fs.utc:dvdtmp>
        backing-store /dev/mapper/sabretoothvg-iscsi.dvdtmp
</target>

<target iqn.2010-08.com.utc.fs:winxppp45client-stor1>
        backing-store /dev/sabretoothvg/iscsi.winxppp45client-stor1
</target>

<target iqn.2011-02.com.utc.fs:esxi.local-space0>
        backing-store /dev/sabretoothvg/iscsi.esxi.local-space0
</target>

<target iqn.2011-02.com.utc.fs:fcoe.test0>
       backing-store /dev/mapper/sabretoothvg-fcoe.test0
       allow-in-use yes
</target>
na taki (uwaga, ściana tekstu):
#### Parameters for TCM subsystem plugin storage object reference
python /usr/lib/python2.6/site-packages/rtsadmin/tcm_node.py --establishdev iblock_0/iblock0 /dev/sabretoothvg/fcoe.test0
python /usr/lib/python2.6/site-packages/rtsadmin/tcm_node.py --setunitserialwithmd iblock_0/iblock0 72ad13f0-c8d2-4d96-bffe-30f9cfc46f2f
#### Parameters for TCM subsystem plugin storage object reference
python /usr/lib/python2.6/site-packages/rtsadmin/tcm_node.py --establishdev iblock_1/gilbertus.swap /dev/sabretoothvg/iscsi.gilbertus.swap
python /usr/lib/python2.6/site-packages/rtsadmin/tcm_node.py --setunitserialwithmd iblock_1/gilbertus.swap 7e05140f-6536-4813-a1a0-d9fdc3b7bca8
#### Parameters for TCM subsystem plugin storage object reference
python /usr/lib/python2.6/site-packages/rtsadmin/tcm_node.py --establishdev iblock_3/esxi.local-space0 /dev/sabretoothvg/iscsi.esxi.local-space0
python /usr/lib/python2.6/site-packages/rtsadmin/tcm_node.py --setunitserialwithmd iblock_3/esxi.local-space0 5bcaffac-6da0-42b0-ad07-fe130609674
#### iSCSI Target Ports
mkdir -p /sys/kernel/config/target/iscsi/iqn.2003-01.org.linux-iscsi.sabretooth.x8664:sn.aeee2b8d6fdd/tpgt_1/lun/lun_0
ln -s /sys/kernel/config/target/iscsi/iqn.2003-01.org.linux-iscsi.sabretooth.x8664:sn.aeee2b8d6fdd/tpgt_1/lun/lun_0/../../../../../../target/core/iblock_0/iblock0 /sys/kernel/config/target/iscsi/iqn.2003-01.org.linux-iscsi.sabretooth.x8664:sn.aeee2b8d6fdd/tpgt_1/lun/lun_0/6efd3cb027
lio_node --aluasecmd iqn.2003-01.org.linux-iscsi.sabretooth.x8664:sn.aeee2b8d6fdd 1 0
mkdir -p /sys/kernel/config/target/iscsi/iqn.2003-01.org.linux-iscsi.sabretooth.x8664:sn.aeee2b8d6fdd/tpgt_1/lun/lun_1
ln -s /sys/kernel/config/target/iscsi/iqn.2003-01.org.linux-iscsi.sabretooth.x8664:sn.aeee2b8d6fdd/tpgt_1/lun/lun_1/../../../../../../target/core/iblock_4/winxppp45client-stor1 /sys/kernel/config/target/iscsi/iqn.2003-01.org.linux-iscsi.sabretooth.x8664:sn.aeee2b8d6fdd/tpgt_1/lun/lun_1/1d6312ea35
lio_node --aluasecmd iqn.2003-01.org.linux-iscsi.sabretooth.x8664:sn.aeee2b8d6fdd 1 1
#### iSCSI Initiator ACLs for iSCSI Target Portal Group
mkdir -p /sys/kernel/config/target/iscsi/iqn.2003-01.org.linux-iscsi.sabretooth.x8664:sn.aeee2b8d6fdd/tpgt_1/acls/iqn.1994-05.com.fedora:5f21153a55f
echo 16 > /sys/kernel/config/target/iscsi/iqn.2003-01.org.linux-iscsi.sabretooth.x8664:sn.aeee2b8d6fdd/tpgt_1/acls/iqn.1994-05.com.fedora:5f21153a55f/cmdsn_depth
mkdir /sys/kernel/config/target/fc
#### fc Target Ports
mkdir -p /sys/kernel/config/target/fc/20:00:00:23:ae:b2:f4:3b/tpgt_1/lun/lun_0
ln -s /sys/kernel/config/target/fc/20:00:00:23:ae:b2:f4:3b/tpgt_1/lun/lun_0/../../../../../../target/core/iblock_0/iblock0 /sys/kernel/config/target/fc/20:00:00:23:ae:b2:f4:3b/tpgt_1/lun/lun_0/b522dc7322
to naprawdę jakiś postęp? Powyżej to drobny fragment, całość ,,nowości'' ma prawie pół tysiąca linii i postać skryptu, który odtwarza ustawienia przez wykonanie wszystkich katalogów i dowiązań symbolicznych.

Do LIO dostępny jest targetcli, będący tak naprawdę kolorową nakładką na mkdir, ln i touch. Ja rozumiem, że wszystko jest plikiem, ale naprawdę zajęło mi pół godziny wpadnięcie na intuicyjny sposób określenia IP, na który jądro ma słuchać. (Tym sposobem jest utworzenie katalogu, dokładniej mkdir -p /sys/kernel/config/target/iscsi/iqn.2003-01.org.linux-iscsi.sabretooth.x8664:sn.aeee2b8d6fdd/tpgt_1/np/192.168.6.9:3260).

Plik konfiguracyjny jest dla mnie czymś solidnym. Skrypt zastępujący go setkami poleceniem powłoki sprawia wrażenie sznurka i taśmy klejącej.

UPDATE: Ktoś jednak stwierdził, że lepsze będzie trzymanie konfiguracji w JSON. No cóż, ma szansę sprawdzić się lepiej niż skrypt shellowy.


Archived comments:

DIVI 2012-01-17 06:04:11

Panie, a ile wojny było o ten target.

Deweloper konkurencyjnej implementacji gdy go nie wybrano strzelił potwornego focha i jest teraz wojna idelologiczna.

Argumentacja opiekuna podsystemu storage też była mało merytoryczna i bardziej się operała o to że ten "wygrany" jest gorszy ale ma bardziej uległych i skorych do ustępstw developerów.

To wszystko jest jeszcze pikuś, ale ten config to już jest parodia.

Nie podobie mnie się.

DIVI 2012-01-17 06:07:13

To tak apropos: http://lwn.net/Articles/424004/

l00natyk 2012-01-17 14:48:04

Mam wrazenie ze w niedalekiej przyszlosci ktos napisze skrypt ktory pobiera dane ze starego konfigu i bedzie tak samo tylko ze inaczej.

yZZuF 2012-01-20 09:48:57

Wygląda jakby się ktoś puścił poręczy.

Comments


Comments powered by Disqus