ืืื ืืฉ ืืื ืื ื (ืืกืคืืืืืื) ืฉืื ืืืืืื "ืืงืกืืจืื ืืงืฆืืขืืื"?
ืื ืื ืกืืืจ - ืืืจืช ืื ืืืื ื ืืกืชืืืืื ืขื ืืืืฆืจ ืืืขื ืืื ืืืืฆืืืง ืืื.
ืจืืื ืืืื ืฉืืื ืืขืืจืืื ืืชืคืขืื ืฉื Ceph ื ืชืงืื ืืืงืจื ืื ืืืื ืชืืืจ (ืื ืืืชืจ ืืืืง ืืคืืื ื ืืืจ ืืืื) ืืื ืืคืขืืื ืืืืงืฉ - ืืืืืจ ืฉื Ceph ืืืืฆืขืืช iSCSI ืื FC. ืืฉืืื ืื? ืืืื, ืืืฉื, ืฉืื ืชืืื ื ื-Ceph ืืฉืจืช Windows ืื Solaris ืฉืขืืืื ืื ืขืืจ ืืืจืืืืืืืฆืื ืืกืืื ืืืฉืื. ืื ืืืจืืืืืืืฆืื, ืืื ืืืืฆืขืืช hypervisor ืฉืื ืืืื ืืขืฉืืช Ceph - ืืืืืืข, ืืฉ ืืจืื ืืืื. ืืืืืื? ืืืื, ืืืฉื, HyperV ืื ESXi, ืฉืืื ื ืขืฉื ืฉืืืืฉ ืคืขืื. ืืื ืขืืื ืืืฉืืื ืฉื ืืืฉืช ืชืืื ื ื-Ceph ืืืืื ืช ืืืจื, ืื ืืืคื ืืืฉืืื ืืืื ืืจืืฉืช.
ืื ื ืชืื:
- ืืฉืืื Ceph ืฉืืืจ ืคืืขื
- ืชืืื ื ืงืืืืช ืฉืืืจ ืืฉ ืืืืืฉ ืืืืฆืขืืช iSCSI
- ืฉื ืืืจืืื mypool, ืฉื ืชืืื ื ืชืืื ื ืฉืื
ืืชืื?
ืงืืื ืื, ืืฉืื ืื ื ืืืืจืื ืขื FC ืื iSCSI, ืืฉ ืื ื ืืฉืืืืช ืืื ืืืื ืืืืจื. ืืืขื ืืื ืืืขืฉื ืฉืจืช, ืืืืื ืืื ืืงืื. ืืืฉืืื ืฉืื ื ืืื ืืืืืฉ ืืช ืชืืื ืช ื-Ceph ืืืืื ืืืื ืืืื ืืืืฅ. ืื ืืืืจ ืฉืขืืื ื ืืืจืืื ืืช ืืืขื. ืืื ืืืคื, ืืืืื ืืืฉื?
ืืืจืื ืืืื, ืืืฉืืื Ceph ืืฉ ืื ื ืืคืืืช ืจืืื ืืื ืฉืืชืืืช ื-IP ืฉืื ืงืืืขื ืืขืืื ืืืืืจ ืืื ืืจืืืืื ืืืฉืืืื ืืืืชืจ ืฉื Ceph, ืืืจืืื ืืื ืืื ืืืื ืืืืจ. ืืืชืื ืืื, ืื ื ืืชืงืื ืื ืืืจืช iSCSI ืขื ืืืกื (ืืื ืืืื ืื ืืื ืืช, ืืคืืืช ืืืืืงืืช). ืขืฉืืชื ืืืช ื-CentOS, ืืื ืืคืชืจืื ืืชืืื ืื ืืื ืืคืฆื ืืืจืช - ืืชื ืจืง ืฆืจืื ืืืชืงืื ืืช ืืืืืืืช ืืฆืืจื ืืืงืืืืช ืืืคืฆื ืฉืื.
# yum -y install iscsi-initiator-utils targetcli
ืื ืืืืจื ืฉื ืืืืืืืช ืืืืชืงื ืืช?
- targetcli - ืืื ืขืืจ ืื ืืืื ืืขื SCSI ืืืืื ื ืืืืืช ืืื ืืงืก
- iscsi-initiator-utils - ืืืืื ืขื ืืื ืขืืจ ืืืฉืืฉืื ืื ืืืื ืืืื iSCSI ืืืืื ื ืืืืืช ืืื ืืงืก
ืขื ืื ืช ืืฉืืื ืชืืื ื ืืจื iSCSI ืืืืื, ืงืืืืืช ืฉืชื ืืคืฉืจืืืืช ืืคืืชืื ืืืจืืขืื - ืืฉืชืืฉ ื-userspace backend ืฉื ืืืขื ืื ืืืจ ืืช ืืชืืื ื ืืืชืงื ืืืืง ืืืื ืืืขืจืืช ืืืคืขืื ืืืืฆื ืืืชื ืืืืฆืขืืช iSCSI. ื ืื ืืืจื ืืฉื ืืื - ื-Userspace backend ืขืืืื ืืืฆื "ื ืืกืืื ื" ืืงืฆืช ืื ืืืื ืืฉืืืืฉ ืคืจืืืืงืืืื. ืื ืืกืฃ, ืืฉ ืื ืืืืืืืช, ืฉืขืืืื ืืคืฉืจ ืืืืจ ืืจืื ื(ืืื ืืืืขื!) ืืืชืืืื.
ืื ืื ืื ื ืืฉืชืืฉืื ืืคืืื ืืืคืฆื ืงืฆืช ืืฆืืื ืขื ืืืืืจ ืชืืืื ืืจืื, ืื ืืงืจื ื ืฉืืฉ ืื ื ืืื ืืจืกื ืขืชืืงื ืืขืชืืงื ืืืฉืื. ืืืืืื, ื-CentOS7 ืื 3.10.*, ื-CentOS8 ืื 4.19. ืืื ืื ื ืืขืื ืืื ืื ืืงืจื ื ืฉื ืืคืืืช 5.3 (ืื ืืืชืจ ื ืืื 5.4) ืืืขืื. ืืื? ืื ืืืจืืจืช ืืืื ืืชืืื ืืช Ceph ืืฉ ืกื ืฉื ืืคืฉืจืืืืช ืืืคืขืืืช ืฉืืื ื ืชืืืืืช ืืืืืช ืืฉื ืืช ืืืชืจ. ืื ืืืืจ ืฉืื ืื ื ืืืืจืื ืืืืจ ืขื ืืืื ืืืฉื ืืืคืฆื ืฉืื ื (ืืืืืื, ืขืืืจ CentOS ืื elrepo), ืืชืงืื ืืช ืืืจืขืื ืืืืฉ ืืืคืขืืืื ืืืืฉ ืืช ืืืขืจืืช ืืื ืืขืืื ืขื ืืงืจื ื ืืืืฉ:
- ืืชืืืจ ืืืื ืืืืจ ืฉื ืืืจ ืื ืืกืื
- ืื ื ืืืืจืื ืืืืจื elrepo ืืคื ืืืืจืืืช -
elrepo.org/tiki/tiki-index.php - ืืชืงื ืืช ืืงืจื ื: yum -y โenablerepo=elrepo-kernel ืืชืงื kernel-ml
- ืืคืขื ืืืืฉ ืืช ืืฉืจืช ืขื ืืฆื (ืืฉ ืื ื ืฉืืืฉื ืืกืืื, ื ืืื?)
ืืืืืจ ืืชืืื ื ืืืชืงื ืืืืง
# rbd map mypool/myimage
/dev/rbd0
ืื ืื ืฉื ืืชืจ ืืื ืืืืืืจ ืืช ืืืขื. ืืืืืื ืื, ืื ื ืืืืืจ ืืช ืืืขื ืืื ืฉื ืงืจื. ืืฆื ืืืืื - ืืื ืืืืืช, ืืืื ืื ืืืฉ ืืืืื. ืืกืืืืช ืืืฆืืจ, ืกืืืจ ืืื ืื ืฉืชืจืฆื ืืืืืืจ ืืืืืช - ืืื ืื ืงืฆืช ืืืืฅ ืืืืื ืืชืจืืื ืฉื ืืืื ืจืง ืืฉืืื ืืืืฃ.
ืฆืืจ ืงืฆื ืืืืจื ืืฉื disk1 ืืืฉืืื ืืงืืืฅ /dev/rbd/mypool/myimage. ืืงืืืฅ ืฉืฆืืื ืืื ืงืืฉืืจ ืกืืื ืฉื ืืฆืจ ืืืืืืืืช ืขื ืืื ืืืืื udev ืื /dev/rbd0. ืื ื ืืฉืชืืฉืื ืืงืืฉืืจ ืกืืื ืืืืืื ืฉืฉื ืืืฉืืจ ื-rbd ืืืื ืืืฉืชื ืืช ืืืชืื ืืกืืจ ืฉืื ืชืืื ืืช Ceph ืืืืืจืืช ืืืืจื.
ืฆืืจ ืงืฆื ืืืืจื:
# targetcli /backstores/block create disk1 /dev/rbd/mypool/myimage
ืฆืืจ ืืขื iSCSI:
# targetcli /iscsi create iqn.2020-01.demo.ceph:mypool
ืื ื ืืืืจืื ืืช ืืงืฆื ืืืืืจื ื-LUN ืืืืจื:
# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/luns create /backstores/block/disk1
ืืืื ื ืืืืจ ืืช ืืืขื ืืืฆื ืืืืื:
# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/ set
> attribute demo_mode_write_protect=0
# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/ set
> attribute generate_node_acls=1
# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/ set
> attribute cache_dynamic_acls=1
ืฉืืืจ ืืช ืืชืฆืืจื:
# targetcli saveconfig
ืืืืงืช ืืืื ืืช ืืืขื:
# iscsiadm -m discovery -t st -p 127.0.0.1:3260
127.0.0.1:3260,1 iqn.2020-01.demo.ceph:mypool
ืื ื ืืืืจืื ืืช ืืืืจื:
# iscsiadm -m node --login
Logging in to [iface: default, target: iqn.2020-01.demo.ceph:mypool, portal: 127.0.0.1,3260] (multiple)
Login to [iface: default, target: iqn.2020-01.demo.ceph:mypool, portal: 127.0.0.1,3260] successful.
ืื ืขืฉืืช ืืื ื ืืื, ืืืคืืข ืืฉืจืช ืืืกืง ืืืฉ, ืฉื ืจืื ืืื ืืชืงื SCSI, ืืื ืืื ืืืขืฉื ืชืืื ื ื-Ceph, ืืืื ื ืืชื ืืืฉืช ืืจื ืืขื iSCSI. ืืื ืืื ืืข ืืขืืืช ืืชืืื, ืขืืืฃ ืืืกืืจ ืืช ืืืืกืง ืืืืืืจ ืืืช ืืืขื ืฉืืืื ืืืืื ืืืงืืื:
# iscsiadm -m node --logout
# iscsiadm -m discoverydb -o delete -t st -p 127.0.0.1:3260
ืื ืื ืฉื ืืชืจ ืืื ืืืชืืื ืืชืฆืืจื ืื ืฉืืชืืื ื ืชืชืืืจ ืืืืืืืืช ืืืืืจ ืืืืืืจ, ืืืืจื ืชืืื ืืจืืืืช. ืฉืืืืจ ืืืจื ืืืจืื ืืฉื ื ืฉืืืื - ืืืืืจ ื-RBD ืืืขืฆื ืฉืืืืจ ืืืืจื.
ืจืืฉืืช, ืืืื ื ืืืืจ ืืช ืืืืืืจ ืืืืืืืื ืฉื ืชืืื ืืช RBD ืืืืจื. ืื ื ืขืฉื ืขื ืืื ืืืกืคืช ืืฉืืจืืช ืืืืืช ืืงืืืฅ /etc/ceph/rbdmap:
# cat /etc/ceph/rbdmap
# RbdDevice Parameters
mypool/myimage id=admin
# systemctl enable rbdmap
ืฉืืืืจ ืชืฆืืจืช ืืืขื ืืื ืงืฆืช ืืืชืจ ืืกืืื - ืื ืื ื ืฆืจืืืื ืืืชืื ืืืืื ืขืืืจ systemd ืฉืชืฉืืืจ ืืช ืืชืฆืืจื:
# cat /usr/lib/systemd/system/scsi-target.service
[Unit]
Description=Start iSCSI target
After=network-online.target rbdmap.service
Before=remote-fs-pre.target
Wants=network-online.target remote-fs-pre.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/targetcli restoreconfig
[Install]
WantedBy=multi-user.target
# systemctl daemon-reload
# systemctl enable scsi-target
ืืืืื ืืืืจืื ืืื ืืืชืื ืืช ืืฆื ืฉืื ื ืฉืื (ืขืืฉืื ืื ืืขื iSCSI). ืืฉ ืืฆืืื ืฉืื ืื ืืืื ื ืื ืงืื ืืช ืืกื ืื ืชืื ืื ืฉื ืืืืื ืขื ืืคืงืืื iscsiadm -n discoverydb -o ืืืง ... ืืชื ืืืื ืืกืืคื ืฉื ืืืจ ืืงืื ืฉืจืช ืฉืื ื ืืขื ืื ืืืงื ืืจืื ืืื ืืืขืื.
ืื ืฉื ืฉืืจ?
ืืืืจ ืืช ืืืืื ืืฉืจืช ืืืื ื ืจืฆื ืืฉืืื ืืช ืืืขื.
ืืืฆื ืืืืืื ืกืืืื ืืช ืชืงืืืช ืฉื ืืืืจื ืฉืื ื?
ื ืืชื ืืืืืืจ ืืืืคื ืืืื ืืขืืื ืืืกืืื ืืืจืื ืืืืืืืจ multipath (vmware ืชืืื ืืช ืื ืืืคืืื ืชืขืืื, Hyper-V ืื ืืืื - ืื ืืืจืฉ ื ืขืืืืช SCSI). ืืืืืื ืฉืืงืื Ceph ืืืงืจื ื ืืื ื ืืฉืชืืฉ ืืืืืื, ืื ืื ืืจ ืืืฆืืข. ืื ืืคืฉืจืืช ืืืจืช ืืื ืืืฆืืจ ืืฉืื ืืฉืืืืืช ืฉื ืฉืืืฉื ืืจืืืืื - ืืชืืืช IP ืืืขืืืืช ืืืขื ืืฉืืจืืชื rbdmap ื-scsi-target, ืืื ืื ืืช ืืืฉืื ืืื ืืืืฆืขืืช ืืื ืืฉืืืืืช (ืื ืืืจ ืงืืฆื ืื?)
ืืืงืื ืืคืืืื
ืืคื ืฉืืจืืจ, ืืืืืจ ืืื ืืื ืงืฆืช ืืืืื - ืืื ืื ื ืืกืืชื "ืืืจ ืืขื ืืืืืืืช" ืืฉืงืื ืืื ื ืืฉืืื ืคืืคืืืจืืื ืืืื ืื-ืืื ืืช - iSCSI target, ืฉืืืื ืื ืืืืจื ืืืฆื ืชืืื ืืช Ceph - ืืื ืืืฉื, ืืืฆืื ื ืคืื LVM, ืืืกืืืืช ืฉื ืขืืืื ืขื ืืืื iSCSI (ืืื ืืกืจืืง ืืขื, ืืื ืืืชืืืจ ืืืขื, ืื ืชืง, ืืืืืง ืขืจื ืืขื ืืืกื ืื ืชืื ืื), ืืชืืืช ืืืืื ืืฉืื ืขืืืจ systemd ืืขืื ืืื ืืืจืื
ืื ื ืืงืืื ืฉืื ืื ืื ืชืืืืจ ืขื ืื ืื ืืกืื ืืื ืืืืืื, ืืคืืืช ืืฉืื ืืืืืืจ ืืื ืืืขืื ืื.
ืืงืืจ: www.habr.com