X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fdoc%2Frbd%2Fiscsi-target-ansible.rst;fp=src%2Fceph%2Fdoc%2Frbd%2Fiscsi-target-ansible.rst;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=4169a9f42440e222f1a64770960adeaa4db1addb;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/doc/rbd/iscsi-target-ansible.rst b/src/ceph/doc/rbd/iscsi-target-ansible.rst deleted file mode 100644 index 4169a9f..0000000 --- a/src/ceph/doc/rbd/iscsi-target-ansible.rst +++ /dev/null @@ -1,343 +0,0 @@ -========================================== -Configuring the iSCSI Target using Ansible -========================================== - -The Ceph iSCSI gateway is the iSCSI target node and also a Ceph client -node. The Ceph iSCSI gateway can be a standalone node or be colocated on -a Ceph Object Store Disk (OSD) node. Completing the following steps will -install, and configure the Ceph iSCSI gateway for basic operation. - -**Requirements:** - -- A running Ceph Luminous (12.2.x) cluster or newer - -- RHEL/CentOS 7.4; or Linux kernel v4.14 or newer - -- The ``ceph-iscsi-config`` package installed on all the iSCSI gateway nodes - -**Installing:** - -#. On the Ansible installer node, which could be either the administration node - or a dedicated deployment node, perform the following steps: - - #. As ``root``, install the ``ceph-ansible`` package: - - :: - - # yum install ceph-ansible - - #. Add an entry in ``/etc/ansible/hosts`` file for the gateway group: - - :: - - [ceph-iscsi-gw] - ceph-igw-1 - ceph-igw-2 - -.. note:: - If co-locating the iSCSI gateway with an OSD node, then add the OSD node to the - ``[ceph-iscsi-gw]`` section. - -**Configuring:** - -The ``ceph-ansible`` package places a file in the ``/usr/share/ceph-ansible/group_vars/`` -directory called ``ceph-iscsi-gw.sample``. Create a copy of this sample file named -``ceph-iscsi-gw.yml``. Review the following Ansible variables and descriptions, -and update accordingly. - -+--------------------------------------+--------------------------------------+ -| Variable | Meaning/Purpose | -+======================================+======================================+ -| ``seed_monitor`` | Each gateway needs access to the | -| | ceph cluster for rados and rbd | -| | calls. This means the iSCSI gateway | -| | must have an appropriate | -| | ``/etc/ceph/`` directory defined. | -| | The ``seed_monitor`` host is used to | -| | populate the iSCSI gateway’s | -| | ``/etc/ceph/`` directory. | -+--------------------------------------+--------------------------------------+ -| ``cluster_name`` | Define a custom storage cluster | -| | name. | -+--------------------------------------+--------------------------------------+ -| ``gateway_keyring`` | Define a custom keyring name. | -+--------------------------------------+--------------------------------------+ -| ``deploy_settings`` | If set to ``true``, then deploy the | -| | settings when the playbook is ran. | -+--------------------------------------+--------------------------------------+ -| ``perform_system_checks`` | This is a boolean value that checks | -| | for multipath and lvm configuration | -| | settings on each gateway. It must be | -| | set to true for at least the first | -| | run to ensure multipathd and lvm are | -| | configured properly. | -+--------------------------------------+--------------------------------------+ -| ``gateway_iqn`` | This is the iSCSI IQN that all the | -| | gateways will expose to clients. | -| | This means each client will see the | -| | gateway group as a single subsystem. | -+--------------------------------------+--------------------------------------+ -| ``gateway_ip_list`` | The ip list defines the IP addresses | -| | that will be used on the front end | -| | network for iSCSI traffic. This IP | -| | will be bound to the active target | -| | portal group on each node, and is | -| | the access point for iSCSI traffic. | -| | Each IP should correspond to an IP | -| | available on the hosts defined in | -| | the ``ceph-iscsi-gw`` host group in | -| | ``/etc/ansible/hosts``. | -+--------------------------------------+--------------------------------------+ -| ``rbd_devices`` | This section defines the RBD images | -| | that will be controlled and managed | -| | within the iSCSI gateway | -| | configuration. Parameters like | -| | ``pool`` and ``image`` are self | -| | explanatory. Here are the other | -| | parameters: ``size`` = This defines | -| | the size of the RBD. You may | -| | increase the size later, by simply | -| | changing this value, but shrinking | -| | the size of an RBD is not supported | -| | and is ignored. ``host`` = This is | -| | the iSCSI gateway host name that | -| | will be responsible for the rbd | -| | allocation/resize. Every defined | -| | ``rbd_device`` entry must have a | -| | host assigned. ``state`` = This is | -| | typical Ansible syntax for whether | -| | the resource should be defined or | -| | removed. A request with a state of | -| | absent will first be checked to | -| | ensure the rbd is not mapped to any | -| | client. If the RBD is unallocated, | -| | it will be removed from the iSCSI | -| | gateway and deleted from the | -| | configuration. | -+--------------------------------------+--------------------------------------+ -| ``client_connections`` | This section defines the iSCSI | -| | client connection details together | -| | with the LUN (RBD image) masking. | -| | Currently only CHAP is supported as | -| | an authentication mechanism. Each | -| | connection defines an ``image_list`` | -| | which is a comma separated list of | -| | the form | -| | ``pool.rbd_image[,pool.rbd_image]``. | -| | RBD images can be added and removed | -| | from this list, to change the client | -| | masking. Note that there are no | -| | checks done to limit RBD sharing | -| | across client connections. | -+--------------------------------------+--------------------------------------+ - -.. note:: - When using the ``gateway_iqn`` variable, and for Red Hat Enterprise Linux - clients, installing the ``iscsi-initiator-utils`` package is required for - retrieving the gateway’s IQN name. The iSCSI initiator name is located in the - ``/etc/iscsi/initiatorname.iscsi`` file. - -**Deploying:** - -On the Ansible installer node, perform the following steps. - -#. As ``root``, execute the Ansible playbook: - - :: - - # cd /usr/share/ceph-ansible - # ansible-playbook ceph-iscsi-gw.yml - - .. note:: - The Ansible playbook will handle RPM dependencies, RBD creation - and Linux IO configuration. - -#. Verify the configuration from an iSCSI gateway node: - - :: - - # gwcli ls - - .. note:: - For more information on using the ``gwcli`` command to install and configure - a Ceph iSCSI gateaway, see the `Configuring the iSCSI Target using the Command Line Interface`_ - section. - - .. important:: - Attempting to use the ``targetcli`` tool to change the configuration will - result in the following issues, such as ALUA misconfiguration and path failover - problems. There is the potential to corrupt data, to have mismatched - configuration across iSCSI gateways, and to have mismatched WWN information, - which will lead to client multipath problems. - -**Service Management:** - -The ``ceph-iscsi-config`` package installs the configuration management -logic and a Systemd service called ``rbd-target-gw``. When the Systemd -service is enabled, the ``rbd-target-gw`` will start at boot time and -will restore the Linux IO state. The Ansible playbook disables the -target service during the deployment. Below are the outcomes of when -interacting with the ``rbd-target-gw`` Systemd service. - -:: - - # systemctl rbd-target-gw - -- ``reload`` - - A reload request will force ``rbd-target-gw`` to reread the - configuration and apply it to the current running environment. This - is normally not required, since changes are deployed in parallel from - Ansible to all iSCSI gateway nodes - -- ``stop`` - - A stop request will close the gateway’s portal interfaces, dropping - connections to clients and wipe the current LIO configuration from - the kernel. This returns the iSCSI gateway to a clean state. When - clients are disconnected, active I/O is rescheduled to the other - iSCSI gateways by the client side multipathing layer. - -**Administration:** - -Within the ``/usr/share/ceph-ansible/group_vars/ceph-iscsi-gw`` file -there are a number of operational workflows that the Ansible playbook -supports. - -.. warning:: - Before removing RBD images from the iSCSI gateway configuration, - follow the standard procedures for removing a storage device from - the operating system. - -+--------------------------------------+--------------------------------------+ -| I want to…​ | Update the ``ceph-iscsi-gw`` file | -| | by…​ | -+======================================+======================================+ -| Add more RBD images | Adding another entry to the | -| | ``rbd_devices`` section with the new | -| | image. | -+--------------------------------------+--------------------------------------+ -| Resize an existing RBD image | Updating the size parameter within | -| | the ``rbd_devices`` section. Client | -| | side actions are required to pick up | -| | the new size of the disk. | -+--------------------------------------+--------------------------------------+ -| Add a client | Adding an entry to the | -| | ``client_connections`` section. | -+--------------------------------------+--------------------------------------+ -| Add another RBD to a client | Adding the relevant RBD | -| | ``pool.image`` name to the | -| | ``image_list`` variable for the | -| | client. | -+--------------------------------------+--------------------------------------+ -| Remove an RBD from a client | Removing the RBD ``pool.image`` name | -| | from the clients ``image_list`` | -| | variable. | -+--------------------------------------+--------------------------------------+ -| Remove an RBD from the system | Changing the RBD entry state | -| | variable to ``absent``. The RBD | -| | image must be unallocated from the | -| | operating system first for this to | -| | succeed. | -+--------------------------------------+--------------------------------------+ -| Change the clients CHAP credentials | Updating the relevant CHAP details | -| | in ``client_connections``. This will | -| | need to be coordinated with the | -| | clients. For example, the client | -| | issues an iSCSI logout, the | -| | credentials are changed by the | -| | Ansible playbook, the credentials | -| | are changed at the client, then the | -| | client performs an iSCSI login. | -+--------------------------------------+--------------------------------------+ -| Remove a client | Updating the relevant | -| | ``client_connections`` item with a | -| | state of ``absent``. Once the | -| | Ansible playbook is ran, the client | -| | will be purged from the system, but | -| | the disks will remain defined to | -| | Linux IO for potential reuse. | -+--------------------------------------+--------------------------------------+ - -Once a change has been made, rerun the Ansible playbook to apply the -change across the iSCSI gateway nodes. - -:: - - # ansible-playbook ceph-iscsi-gw.yml - -**Removing the Configuration:** - -The ``ceph-ansible`` package provides an Ansible playbook to -remove the iSCSI gateway configuration and related RBD images. The -Ansible playbook is ``/usr/share/ceph-ansible/purge_gateways.yml``. When -this Ansible playbook is ran a prompted for the type of purge to -perform: - -*lio* : - -In this mode the LIO configuration is purged on all iSCSI gateways that -are defined. Disks that were created are left untouched within the Ceph -storage cluster. - -*all* : - -When ``all`` is chosen, the LIO configuration is removed together with -**all** RBD images that were defined within the iSCSI gateway -environment, other unrelated RBD images will not be removed. Ensure the -correct mode is chosen, this operation will delete data. - -.. warning:: - A purge operation is destructive action against your iSCSI gateway - environment. - -.. warning:: - A purge operation will fail, if RBD images have snapshots or clones - and are exported through the Ceph iSCSI gateway. - -:: - - [root@rh7-iscsi-client ceph-ansible]# ansible-playbook purge_gateways.yml - Which configuration elements should be purged? (all, lio or abort) [abort]: all - - - PLAY [Confirm removal of the iSCSI gateway configuration] ********************* - - - GATHERING FACTS *************************************************************** - ok: [localhost] - - - TASK: [Exit playbook if user aborted the purge] ******************************* - skipping: [localhost] - - - TASK: [set_fact ] ************************************************************* - ok: [localhost] - - - PLAY [Removing the gateway configuration] ************************************* - - - GATHERING FACTS *************************************************************** - ok: [ceph-igw-1] - ok: [ceph-igw-2] - - - TASK: [igw_purge | purging the gateway configuration] ************************* - changed: [ceph-igw-1] - changed: [ceph-igw-2] - - - TASK: [igw_purge | deleting configured rbd devices] *************************** - changed: [ceph-igw-1] - changed: [ceph-igw-2] - - - PLAY RECAP ******************************************************************** - ceph-igw-1 : ok=3 changed=2 unreachable=0 failed=0 - ceph-igw-2 : ok=3 changed=2 unreachable=0 failed=0 - localhost : ok=2 changed=0 unreachable=0 failed=0 - - -.. _Configuring the iSCSI Target using the Command Line Interface: ../iscsi-target-cli