|
Курсовая работа БД.. РГР. Расчетнографическая работа по дисциплине системное администрирование
РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА ПО ДИСЦИПЛИНЕ «СИСТЕМНОЕ АДМИНИСТРИРОВАНИЕ»
Факультет: АВТ Преподаватель: Менжулин С.А.
Группа: АВТ-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 и удалением сбойного таргета.
|
|
|