-
ISCSI w CentOS 6
Ilość danych przechowywanych na różnych nośnikach danych ciągle rośnie, a miejsce wcale nie jest tanie, szczególnie teraz po powodzi. Ciekawym i tanim do wdrożenia rozwiązaniem jest icsci. Opis na Wikipedii jest dobry, więc zacytuję: „technika umożliwiająca wykonywanie operacji wejścia-wyjścia na dysku twardym odległej maszyny za pomocą protokołu TCP/IP”. Przystąpmy do instalacji. Potrzebny jest pakiet iscsi-initiator-utils (znajduje się on w bazowym repozytorium)
yum install iscsi-initiator-utils
Następnie wydajemy komendę:
iscsiadm –mode discoverydb –type sendtargets –portal adres_ip_serwera_isci –discover
W jego wyniku powinniśmy otrzymać coś takiego:
adres_ip_serwera_isci:port,1 iqn.2004-04.com.qnap:ts-412:iscsi.aa.cbf114
Idźmy dalej. Wydajemy komendę:iscsiadm –mode node –targetname iqn.2004-04.com.qnap:ts-412:iscsi.aa.cbf114 –portal adres_ip_serwera_isci:port –login
Jeśli wszystko przebiegło prawidłowo, powinniśmy otrzymać następujący komunikat:
Logging in to [iface: default, target: iqn.2004-04.com.qnap:ts-412:iscsi.aa.cbf114, portal: adres_ip_serwera_isci,port]
Login to [iface: default, target: iqn.2004-04.com.qnap:ts-412:iscsi.aa.cbf114, portal: adres_ip_serwera_isci,port] successful.
Teraz czas dowiedzieć się jak został nazwany nasz nowy dysk. Aby tego dokonać, najprościej wydać polecenie „dmesg”, w wyniku którego powinniśmy otrzymać coś takiego:
scsi0 : iSCSI Initiator over TCP/IP
Vendor: QNAP Model: iSCSI Storage Rev: 3.1
Type: Direct-Access ANSI SCSI revision: 05
scsi 0:0:0:0: Attached scsi generic sg0 type 0
SCSI device sda: 878706688 512-byte hdwr sectors (449898 MB)
sda: Write Protect is off
sda: Mode Sense: 2f 00 00 00
SCSI device sda: drive cache: write through
SCSI device sda: 878706688 512-byte hdwr sectors (449898 MB)
sda: Write Protect is off
sda: Mode Sense: 2f 00 00 00
SCSI device sda: drive cache: write through
sda: unknown partition table
sd 0:0:0:0: Attached scsi disk sda
Widzimy, że dysk podmontowany po iscsi nosi nazwę „sda”. Teraz utwórzmy na nim tablicę partycji.fdisk -cu /dev/sda
Powinniśmy zobaczyć coś podobnego do tego:
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.The number of cylinders for this disk is set to 54696.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)Command (m for help):
Wpisujemy „p” i widzimy listę partycji na tym dysku iscsi, a właściwie jej brak:
Disk /dev/sda: 449.8 GB, 449897824256 bytes
255 heads, 63 sectors/track, 54696 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System
Wpisujemy „n”, co oznacza dodawanie nowej partycji. Otrzymamy możliwość wyboru, pomiędzy partycją główną, a rozszerzoną:
Command action
e extended
p primary partition (1-4)
Wybieramy główną – „p”. Następnie wybieramy numer partycji:
Partition number (1-4):
W naszym przypadku będzie to pierwsza partycja – „1”. Następnie ustawiamy pierwszy cylinder.
First cylinder (1-54696, default 1):
Nic nie zmieniamy i naciskamy /enter/. Otrzymujemy potwierdzenie naszego wyboru:
Using default value 1
Teraz czas na ustawienie ostatniego cylindra, a właściwie wielkości partycji.
Last cylinder or +size or +sizeM or +sizeK (1-54696, default 54696):
Nic nie wpisujemy, bo chcemy zająć całą dostępną przestrzeń. Otrzymujemy potwierdzenie:
Using default value 54696
Wpisujemy „p” i widzimy listę partycji na tym dysku iscsi:
Disk /dev/sda: 449.8 GB, 449897824256 bytes
255 heads, 63 sectors/track, 54696 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System
/dev/sda1 1 54696 439345588+ 83 LinuxNastępnie naciskamy „w”, aby zapisać tablicę partycji na dysku. Kiedy mamy już partycję, czas utworzyć na niej jakiś system plików, np; xfs.
mkfs.xfs /dev/sda1
Otrzymamy:
meta-data=/dev/sda1 isize=256 agcount=16, agsize=6864774 blks
= sectsz=512 attr=0
data = bsize=4096 blocks=109836384, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=1
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=32768, version=1
= sectsz=512 sunit=0 blks, lazy-count=0
realtime =none extsz=4096 blocks=0, rtextents=0
Czas podmontować nową partycję, np. jako „/mnt/iscsi”. Oczywiście wspomniany katalog musi istnieć. Następnie:mount /dev/sda1 /mnt/iscsi
Aby sprawdzić, czy partycja się podmontowała, najprościej wydać polecenie „df -h”, w wyniku którego powinniśmy zobaczyć, między innymi taki wpis:
/dev/sda1 419G 544K 419G 1% /mnt/iscsi
Taki zasób nie zostanie automatycznie podmontowany po restarcie. Dodajmy w tym celu następujący wpis do pliku „/etc/fstab”
/dev/sda1 /mnt/iscsi xfs defaults,_netdev 1 1
„_netdev” oznacza, ze zasób będzie podmontowany po uruchomieniu sieci. Na koniec ustawiamy, aby „iscsi” automatycznie startował przy starcie systemu:/sbin/chkconfig icsci on
Powinno wszystko działać. W razie czego, proszę pisać.
Dysk na iSCSI znacznie lepiej dodać do fstab’a z użyciem UUID lub LABEL (trzeba ją wcześniej nadać). Po kolejnych restartach system może nadać dyskowi inną literę (np. /dev/sdb1 zamiast /dev/sda1) i nie zostanie on zamontowany. Jest to szczególnie częste jeżeli mamy więcej takich zasobów