From 4008ca8619a83ac4ee9c56cb37f42b208d753823 Mon Sep 17 00:00:00 2001 From: Steven Dake Date: Thu, 9 Jul 2015 07:49:28 -0700 Subject: [PATCH] Start tgtd in cinder-volume container The tgtd process was not being started in the cinder-volume container. This results in iSCSI not being avialable for Cinder to operate against. Unfortunately cinder doesn't report the problem because LVM is responsible for the iSCSI mapping. Co-Authored-By: Ryan Hallisey Closes-Bug: 1473090 Closes-Bug: 1469323 Change-Id: Ie3403c5c3f81beb48960e838b4274e0c5796e387 --- .../binary/cinder-app/cinder-volume/Dockerfile | 9 +-------- .../binary/cinder-app/cinder-volume/tgtd.sh | 1 + .../cinder-app/cinder-volume/config-external.sh | 0 .../cinder-app/cinder-volume/config-internal.sh | 10 +++++++--- docker/common/cinder-app/cinder-volume/tgtd.sh | 17 +++++++++++++++++ tools/genenv | 2 +- 6 files changed, 27 insertions(+), 12 deletions(-) create mode 120000 docker/centos/binary/cinder-app/cinder-volume/tgtd.sh mode change 100644 => 100755 docker/common/cinder-app/cinder-volume/config-external.sh create mode 100755 docker/common/cinder-app/cinder-volume/tgtd.sh diff --git a/docker/centos/binary/cinder-app/cinder-volume/Dockerfile b/docker/centos/binary/cinder-app/cinder-volume/Dockerfile index 0daf6d29e4..581f9e03aa 100644 --- a/docker/centos/binary/cinder-app/cinder-volume/Dockerfile +++ b/docker/centos/binary/cinder-app/cinder-volume/Dockerfile @@ -2,17 +2,10 @@ FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%cinder-base:%%KOLLA_TAG%% MAINTAINER Kolla Project (https://launchpad.net/kolla) # Install required packages -# https://bugs.launchpad.net/kolla/+bug/1460129 -# Iscsi will be removed from cinder-volume in a later patch -# so that we continue to follow the container best practices. -# There will also be other backends for cinder and iscsi should -# not be hardcoded here. RUN yum install -y lvm2 scsi-target-utils && yum clean all # Add start scripts +COPY tgtd.sh volume-group-create.sh config-internal.sh config-external.sh /opt/kolla/ COPY start.sh /start.sh -COPY config-internal.sh config-external.sh /opt/kolla/ -COPY volume-group-create.sh /opt/kolla/volume-group-create.sh -# Start supervisor CMD ["/start.sh"] diff --git a/docker/centos/binary/cinder-app/cinder-volume/tgtd.sh b/docker/centos/binary/cinder-app/cinder-volume/tgtd.sh new file mode 120000 index 0000000000..f0c8855777 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-volume/tgtd.sh @@ -0,0 +1 @@ +../../../../common/cinder-app/cinder-volume/tgtd.sh \ No newline at end of file diff --git a/docker/common/cinder-app/cinder-volume/config-external.sh b/docker/common/cinder-app/cinder-volume/config-external.sh old mode 100644 new mode 100755 diff --git a/docker/common/cinder-app/cinder-volume/config-internal.sh b/docker/common/cinder-app/cinder-volume/config-internal.sh index 9b3998967f..0b0d9b95cf 100755 --- a/docker/common/cinder-app/cinder-volume/config-internal.sh +++ b/docker/common/cinder-app/cinder-volume/config-internal.sh @@ -74,9 +74,6 @@ sed -i 's/use_lvmetad = 1/use_lvmetad = 0/' /etc/lvm/lvm.conf #Adding LVM filter sed -i 's:filter = \[ "a/.\*/" \]:filter = \[ "a/sda/", "r/.\*/"\]:g' /etc/lvm/lvm.conf -#Adding cinder volumes to tgtd config -echo "include /etc/cinder/volumes/*" >> /etc/tgt/tgtd.conf - # https://bugs.launchpad.net/kolla/+bug/1461635 # Cinder requires mounting /dev in the cinder-volume, nova-compute, # and libvirt containers. If /dev/pts/ptmx does not have proper permissions @@ -86,5 +83,12 @@ echo "include /etc/cinder/volumes/*" >> /etc/tgt/tgtd.conf # **Temporary fix** chmod 666 /dev/pts/ptmx +#Adding cinder volumes to tgtd config +echo "include /etc/cinder/volumes/*" >> /etc/tgt/tgtd.conf +echo "include /var/lib/cinder/volumes/*" >> /etc/tgt/targets.conf + +echo "Starging iSCSI tgtd" +/opt/kolla/tgtd.sh + echo "Starting cinder-volume" exec /usr/bin/cinder-volume --config-file /etc/cinder/cinder.conf diff --git a/docker/common/cinder-app/cinder-volume/tgtd.sh b/docker/common/cinder-app/cinder-volume/tgtd.sh new file mode 100755 index 0000000000..33d9461a05 --- /dev/null +++ b/docker/common/cinder-app/cinder-volume/tgtd.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +DESC="target framework daemon" +DAEMON=/usr/sbin/tgtd + +TGTD_CONFIG=/etc/tgt/targets.conf + +echo "Starting tgtd $DESC" +/usr/sbin/tgtd +echo "Set to offline" +tgtadm --op update --mode sys --name State -v offline +echo "Set tgt config" +tgt-admin -e -c $TGTD_CONFIG +echo "Set to ready" +tgtadm --op update --mode sys --name State -v ready diff --git a/tools/genenv b/tools/genenv index 95082ee542..a682807ec3 100755 --- a/tools/genenv +++ b/tools/genenv @@ -222,7 +222,7 @@ CINDER_BACKUP_NAME_TEMPLATE=backup-%s CINDER_BACKUP_DRIVER=cinder.backup.drivers.swift # Cinder Volume -ISCSI_HELPER=lioadm +ISCSI_HELPER=tgtadm ISCSI_IP_ADDRESS=$HOST_IP CINDER_LVM_LO_VOLUME_SIZE=4G CINDER_VOLUME_API_LISTEN=$HOST_IP