Файл: Расчетнографическая работа по дисциплине системное администрирование.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.11.2023

Просмотров: 9

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.



РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА
ПО ДИСЦИПЛИНЕ «СИСТЕМНОЕ АДМИНИСТРИРОВАНИЕ»


Факультет: АВТ Преподаватель: Менжулин С.А.

Группа: АВТ-709

Студенты:

Кузнецов А.В., Шабанов М.Г.

Настройка iSCSI сервера на CentOS 7

Теоретическая часть


Targetcli на CentOS 7 представляет таргет в виде иерархически построенной структуры. И делит таргет на back-end и front-end части. Backstores – это back-end, fabric module – это front-end. Backstores – это всегда один раздел в иерархии targetcli, внутри которого отображаются хранилища в виде объектов, в то время как fabric module может быть не один – в нём содержатся различные настройки видимой снаружи части таргета. Существует несколько типов fabric module: Fibre Channel over Ethernet (FCoE), Fibre Channel, IEEE 1394, iSCSI, iSCSI Extensions for RDMA (iSER), SCSI RDMA Protocol (SRP), USB Gadget, Loopback.

Backstores – это раздел, в котором отображаются объекты-хранилища. Backstores – не видимая снаружи часть iSCSI таргета.

Block – жесткий диск, символические ссылки на диск или LVM.

Fileio – файл.

PSCSI (SCSI pass-through) – любое устройство для хранения информации, поддерживающее SCSI команды напрямую, то есть без эмуляции SCSI. Этот бэкстор не нужно использовать, так это как может привести к повреждениям железа.

Ramdisk – RAM-диск.

iSCSI – это fabric module, видимая снаружи часть iSCSI таргета. Он содержит список таргетов, лунов, права доступа и т.п.

Loopback – ещё один fabric module, который дает доступ к таргету локально.

Ход работы


Установка

yum install -y targetcli

Добавляем в автостарт и запускаем

systemctl enable targetsystemctl start target

Теперь перейдем в сам targetcli и выйдем, основными командами внутри будут cd, ls, help. Утилита автоматическисохраняет конфиг и бекап.

targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb46
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type ‘help’.


/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json 

Подготовка дисков

Существует возможность отдавать как диск целиком — условный /dev/sd* так и конкретный lvm диск, В нашем примере мы имеем 8Тб диск, по этому пойдем по пути выдачи LVM дисков. В нашем примере, указанные диски будут использоваться как ASM диски на сервере Oracle

Смотрим нужный нам диск, это /dev/sdb

[root@fileserver ]# fdisk -l | grep sd
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Disk /dev/sdb: 8796.1 GB, 8796093022208 bytes, 17179869184 sectors

Создадим партицию, после чего volume нужного объема. Отдельно отмечу, что для volume мы будем использовать ключ -s, явно задавая размер блока для расширения.

Мы создадим

2x450Gb disk for asm_dg_svfe

2×200 disk for asm_dg_reco

смотрим

[root@fileserver ]# pvcreate /dev/sdb
Physical volume «/dev/sdb» successfully created.
[root@fileserver ]# vgcreate -s 64M vlg-asm /dev/sdb
Volume group «vlg-asm» successfully created
[root@fileserver ]# lvcreate -L 200G -n lv_reco1 vlg-asm
Logical volume «lv_reco1» created.
[root@fileserver ]# lvcreate -L 200G -n lv_reco2 vlg-asm
Logical volume «lv_reco2» created.
[root@fileserver ]# lvcreate -L 450G -n lv_svfe1 vlg-asm
Logical volume «lv_svfe1» created.
[root@fileserver ]# lvcreate -L 450G -n lv_svfe2 vlg-asm
Logical volume «lv_svfe2» created.
[root@fileserver ]# lvscan
ACTIVE ‘/dev/centos/swap’ [3.75 GiB] inherit
ACTIVE ‘/dev/centos/root’ [<45.05 GiB] inherit
ACTIVE ‘/dev/vlg-asm/lv_reco1’ [200.00 GiB] inherit
ACTIVE ‘/dev/vlg-asm/lv_reco2’ [200.00 GiB] inherit
ACTIVE ‘/dev/vlg-asm/lv_svfe1’ [450.00 GiB] inherit
ACTIVE ‘/dev/vlg-asm/lv_svfe2’ [450.00 GiB] inherit 

Создание блочных bacstore

Входим, убеждаемся, что мы находимся по пути / и видим, что ничего еще нет

[root@fileserver ]# targetcli
targetcli shell version 2.1.fb46
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type ‘help’.

/> ls
o- / …………………………………………………………………………………………………………. […]
o- backstores ……………………………………………………………………………………………….. […]
| o- block …………………………………………………………………………………….. [Storage Objects: 0]
| o- fileio ……………………………………………………………………………………. [Storage Objects: 0]
| o- pscsi …………………………………………………………………………………….. [Storage Objects: 0]
| o- ramdisk …………………………………………………………………………………… [Storage Objects: 0]
o- iscsi ……………………………………………………………………………………………… [Targets: 0]
o- loopback …………………………………………………………………………………………… [Targets: 0]
/>
 

Создаем bacstore, пример команды backstores/block create reco_01 /dev/vlg-asm/lv_reco1

/> /backstores/block create reco_01 /dev/vlg-asm/lv_reco1
Created block storage object reco_01 using /dev/vlg-asm/lv_reco1.
/> /backstores/block create reco_02 /dev/vlg-asm/lv_reco2
Created block storage object reco_02 using /dev/vlg-asm/lv_reco2.
/> /backstores/block create svfe_01 /dev/vlg-asm/lv_svfe1
Created block storage object svfe_01 using /dev/vlg-asm/lv_svfe1.
/> /backstores/block create svfe_02 /dev/vlg-asm/lv_svfe2
Created block storage object svfe_02 using /dev/vlg-asm/lv_svfe2.
/> ls
o- / …………………………………………………………………………………………………………. […]
o- backstores ……………………………………………………………………………………………….. […]
| o- block …………………………………………………………………………………….. [Storage Objects: 4]
| | o- reco_01 ………………………………………………… [/dev/vlg-asm/lv_reco1 (200.0GiB) write-thru deactivated]
| | | o- alua ……………………………………………………………………………………… [ALUA Groups: 1]
| | | o- default_tg_pt_gp …………………………………………………………….. [ALUA state: Active/optimized]
| | o- reco_02 ………………………………………………… [/dev/vlg-asm/lv_reco2 (200.0GiB) write-thru deactivated]
| | | o- alua ……………………………………………………………………………………… [ALUA Groups: 1]
| | | o- default_tg_pt_gp …………………………………………………………….. [ALUA state: Active/optimized]
| | o- svfe_01 ………………………………………………… [/dev/vlg-asm/lv_svfe1 (450.0GiB) write-thru deactivated]
| | | o- alua ……………………………………………………………………………………… [ALUA Groups: 1]
| | | o- default_tg_pt_gp …………………………………………………………….. [ALUA state: Active/optimized]
| | o- svfe_02 ………………………………………………… [/dev/vlg-asm/lv_svfe2 (450.0GiB) write-thru deactivated]
| | o- alua ……………………………………………………………………………………… [ALUA Groups: 1]
| | o- default_tg_pt_gp …………………………………………………………….. [ALUA state: Active/optimized]
| o- fileio ……………………………………………………………………………………. [Storage Objects: 0]
| o- pscsi …………………………………………………………………………………….. [Storage Objects: 0]
| o- ramdisk …………………………………………………………………………………… [Storage Objects: 0]
o- iscsi ………………………………………………………………………………………………
[Targets: 0]
o- loopback …………………………………………………………………………………………… 


Создание ISCSI target

Для создания таргета по умолчанию можно выполнить /iscsi create, если мы хотим явно задать имя, а мы хотим то формат следующий

iscsi/ create iqn.2017-12.com.example:asm-target1

 /> iscsi/ create iqn.2017-12.com.example:asm-target1
Created target iqn.2017-12.com.example:asm-target1.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/> ls
o- / …………………………………………………………………………………………………………. […]
o- backstores ……………………………………………………………………………………………….. […]
| o- block …………………………………………………………………………………….. [Storage Objects: 4]
| | o- reco_01 ………………………………………………… [/dev/vlg-asm/lv_reco1 (200.0GiB) write-thru deactivated]
| | | o- alua ……………………………………………………………………………………… [ALUA Groups: 1]
| | | o- default_tg_pt_gp …………………………………………………………….. [ALUA state: Active/optimized]
| | o- reco_02 ………………………………………………… [/dev/vlg-asm/lv_reco2 (200.0GiB) write-thru deactivated]
| | | o- alua ……………………………………………………………………………………… [ALUA Groups: 1]
| | | o- default_tg_pt_gp …………………………………………………………….. [ALUA state: Active/optimized]
| | o- svfe_01 ………………………………………………… [/dev/vlg-asm/lv_svfe1 (450.0GiB) write-thru deactivated]
| | | o- alua ……………………………………………………………………………………… [ALUA Groups: 1]
| | | o- default_tg_pt_gp …………………………………………………………….. [ALUA state: Active/optimized]
| | o- svfe_02 ………………………………………………… [/dev/vlg-asm/lv_svfe2 (450.0GiB) write-thru deactivated]
| | o- alua ……………………………………………………………………………………… [ALUA Groups: 1]
| | o- default_tg_pt_gp …………………………………………………………….. [ALUA state: Active/optimized]
| o- fileio ……………………………………………………………………………………. [Storage Objects: 0]
| o- pscsi …………………………………………………………………………………….. [Storage Objects: 0]
| o- ramdisk …………………………………………………………………………………… [Storage Objects: 0]
o- iscsi ……………………………………………………………………………………………… [Targets: 1]
| o- iqn.2017-12.com.example:asm-target1 ……………………………………………………………………. [TPGs: 1]
| o- tpg1 ………………………………………………………………………………….. [no-gen-acls, no-auth]
| o- acls ……………………………………………………………………………………………. [ACLs: 0]
| o- luns …………………………………………………………………………………………….
[LUNs: 0]
| o- portals ………………………………………………………………………………………. [Portals: 1]
| o- 0.0.0.0:3260 ……………………………………………………………………………………….. [OK]
o- loopback …………………………………………………………………………………………… [Targets 


В итоге мы создали таргет с именем iqn.2017-12.com.example:asm-target1 который будет принимать подключения к порталу на 0.0.0.0:3260 (при необходимости можно изменить)

Так же надо не забыть открытьдоступ на firewall для подключения по порту tcp 3260

 iptables -L -v -n | grep 3260

1    60 ACCEPT     tcp  —  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3260 

Внутри iscsi можно видеть структуру. Первый элемент – имя таргета. Ниже по иерархии tpg1 расшифровывается как Target Portal Group – список IP-адресов и TCP портов, которые будет слушать этот таргет. Дальше идут acl – список адресов, с которых можно будет подключиться к таргету, luns – список лунов, portals – список IP-адресов и портов, которые будет слушать таргет. 

Перейти в иерархии targetcli на уровень tpg1 и установить параметры авторизации
cd
— используя стрелки для навигации по иерархии, переместиться на уровень tpg1 —
set parameter AuthMethod=None
set attribute authentication=0



 

/> cd

/iscsi/iqn.20…-target1/tpg1> set parameter AuthMethod=None
Parameter AuthMethod is now ‘None’.
/iscsi/iqn.20…-target1/tpg1> set attribute authentication=0
Parameter authentication is now ‘0’.
/iscsi/iqn.20…-target1/tpg1> ls
o- tpg1 ……………………………………………………………………………………….. [no-gen-acls, no-auth]
o- acls …………………………………………………………………………………………………. [ACLs: 0]
o- luns …………………………………………………………………………………………………. [LUNs: 0]
o- portals ……………………………………………………………………………………………. [Portals: 1]
o- 0.0.0.0:3260 ……………………………………………………………………………………………..
[OK]
/
iscsi/iqn.20…-target1/tpg1>

 

Далее мы должны настроить ACL, кому разрешаем подключаться к нашему target, выяснить это можно, прочитав на клиенте

[root@CLIENT ]# cat /etc/iscsi/initiatorname.iscsiInitiatorName=iqn.2017-12.ru.example:5ba056da81cf 


Далее на сервере iscsi выполним acls/ create iqn.2017-12.ru.example:5ba056da81cf

/iscsi/iqn.20…-target1/tpg1> acls/ create iqn.2017-12.ru.example:5ba056da81cf
Created Node ACL for iqn.2017-12.ru.example:5ba056da81cf
Created mapped LUN 0.


Вывод

/iscsi/iqn.20…-target1/tpg1> ls
o- tpg1 ……………………………………………………………………………………….. [no-gen-acls, no-auth]
o- acls …………………………………………………………………………………………………. [ACLs: 1]
| o- iqn.2017-12.ru.example:5ba056da81cf ……………………………………………………………… [Mapped LUNs: 0]
o- luns …………………………………………………………………………………………………. [LUNs: 0]
o- portals ……………………………………………………………………………………………. [Portals: 1]
o- 0.0.0.0:3260 …………………………………………………………………………………………….. [OK] 


Теперь пора его подключать luns/ create /backstores/block/test01

/iscsi/iqn.20…-target1/tpg1> luns/ create /backstores/block/test01
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2017-12.ru.example:5ba056da81cf
/iscsi/iqn.20…-target1/tpg1> ls
o- tpg1 ……………………………………………………………………………………….. [no-gen-acls, no-auth]
o- acls …………………………………………………………………………………………………. [ACLs: 1]
| o- iqn.2017-12.ru.example:5ba056da81cf ……………………………………………………………… [Mapped LUNs: 1]
| o- mapped_lun0 ………………………………………………………………………….. [lun0 block/test01 (rw)]
o- luns …………………………………………………………………………………………………. [LUNs: 1]
| o- lun0 ……………………………………………………… [block/test01 (/dev/vlg-asm/lv_test) (default_tg_pt_gp)]
o- portals ……………………………………………………………………………………………. [Portals: 0]


так же создаем портал portals/ create 0.0.0.0

/iscsi/iqn.20…-target1/tpg1> portals/ create 0.0.0.0
Using default IP port 3260
Binding to INADDR_ANY (0.0.0.0)
Created network portal 0.0.0.0:3260.
/iscsi/iqn.20…-target1/tpg1> ls
o- tpg1 ……………………………………………………………………………………….. [no-gen-acls, no-auth]
o- acls …………………………………………………………………………………………………. [ACLs: 1]
| o- iqn.2017-12.ru.example:5ba056da81cf ……………………………………………………………… [Mapped LUNs: 1]
| o- mapped_lun0 ………………………………………………………………………….. [lun0 block/test01 (rw)]
o- luns …………………………………………………………………………………………………. [LUNs: 1]
| o- lun0 ……………………………………………………… [block/test01 (/dev/vlg-asm/lv_test) (default_tg_pt_gp)]
o- portals ……………………………………………………………………………………………. [Portals: 1]
o- 0.0.0.0:3260 …………………………………………………………………………………………….. [OK]
/iscsi/iqn.20…-target1/tpg1>


и подключил его, вывод команды ls

iscsi/iqn.20…-target1/tpg1> ls
o- tpg1 ……………………………………………………………………………………….. [no-gen-acls, no-auth]
o- acls …………………………………………………………………………………………………. [ACLs: 1]
| o- iqn.2017-12.ru.example:5ba056da81cf ……………………………………………………………… [Mapped LUNs: 1]
| o- mapped_lun0 ………………………………………………………………………….. [lun0 block/test01 (rw)]
o- luns …………………………………………………………………………………………………. [LUNs: 1]
| o- lun0 ……………………………………………………… [block/test01 (/dev/vlg-asm/lv_test) (default_tg_pt_gp)]
o- portals …………………………………………………………………………………………….

[Portals: 1]
o- 0.0.0.0:3260 …………………………………………………………………………………………….. [OK]


Хорошим тоном будет сохранить конфиг явно, хоть он и сохраняется по умолчанию

/iscsi/iqn.20…-target1/tpg1> cd /
/> saveconfig
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json

Выводы


В ходе выполнения расчетно-графического задания на виртуальную машину была установлена CentOS 7. На ней был настроен ISCSI target. Существует известная проблема, если по каким-либо причинам во время ребута не будет доступен target, то загрузка зависнет на шаге ожидания iscsi device. Проблема решается переходом в single mode и удалением сбойного таргета.