The Linux-IO is a modern way of handling targets.
Per the IRC discussions lioadm as default
seams like a better default for everyone, for now it will be
optional, but the tgtadm admin support expected to be removed when
lioadm works well with all CI (including third party).
Change-Id: Ia54c59914c1d3ff2ef5f00ecf819426bc448d0a9
| ... | ... |
@@ -88,6 +88,8 @@ CINDER_SECURE_DELETE=$(trueorfalse True CINDER_SECURE_DELETE) |
| 88 | 88 |
# https://bugs.launchpad.net/cinder/+bug/1180976 |
| 89 | 89 |
CINDER_PERIODIC_INTERVAL=${CINDER_PERIODIC_INTERVAL:-60}
|
| 90 | 90 |
|
| 91 |
+CINDER_ISCSI_HELPER=${CINDER_ISCSI_HELPER:-tgtadm}
|
|
| 92 |
+ |
|
| 91 | 93 |
# Tell Tempest this project is present |
| 92 | 94 |
TEMPEST_SERVICES+=,cinder |
| 93 | 95 |
|
| ... | ... |
@@ -125,31 +127,35 @@ function is_cinder_enabled {
|
| 125 | 125 |
function cleanup_cinder {
|
| 126 | 126 |
# ensure the volume group is cleared up because fails might |
| 127 | 127 |
# leave dead volumes in the group |
| 128 |
- local targets=$(sudo tgtadm --op show --mode target) |
|
| 129 |
- if [ $? -ne 0 ]; then |
|
| 130 |
- # If tgt driver isn't running this won't work obviously |
|
| 131 |
- # So check the response and restart if need be |
|
| 132 |
- echo "tgtd seems to be in a bad state, restarting..." |
|
| 133 |
- if is_ubuntu; then |
|
| 134 |
- restart_service tgt |
|
| 135 |
- else |
|
| 136 |
- restart_service tgtd |
|
| 128 |
+ if [ "$CINDER_ISCSI_HELPER" = "tgtadm" ]; then |
|
| 129 |
+ local targets=$(sudo tgtadm --op show --mode target) |
|
| 130 |
+ if [ $? -ne 0 ]; then |
|
| 131 |
+ # If tgt driver isn't running this won't work obviously |
|
| 132 |
+ # So check the response and restart if need be |
|
| 133 |
+ echo "tgtd seems to be in a bad state, restarting..." |
|
| 134 |
+ if is_ubuntu; then |
|
| 135 |
+ restart_service tgt |
|
| 136 |
+ else |
|
| 137 |
+ restart_service tgtd |
|
| 138 |
+ fi |
|
| 139 |
+ targets=$(sudo tgtadm --op show --mode target) |
|
| 137 | 140 |
fi |
| 138 |
- targets=$(sudo tgtadm --op show --mode target) |
|
| 139 |
- fi |
|
| 140 | 141 |
|
| 141 |
- if [[ -n "$targets" ]]; then |
|
| 142 |
- local iqn_list=( $(grep --no-filename -r iqn $SCSI_PERSIST_DIR | sed 's/<target //' | sed 's/>//') ) |
|
| 143 |
- for i in "${iqn_list[@]}"; do
|
|
| 144 |
- echo removing iSCSI target: $i |
|
| 145 |
- sudo tgt-admin --delete $i |
|
| 146 |
- done |
|
| 147 |
- fi |
|
| 142 |
+ if [[ -n "$targets" ]]; then |
|
| 143 |
+ local iqn_list=( $(grep --no-filename -r iqn $SCSI_PERSIST_DIR | sed 's/<target //' | sed 's/>//') ) |
|
| 144 |
+ for i in "${iqn_list[@]}"; do
|
|
| 145 |
+ echo removing iSCSI target: $i |
|
| 146 |
+ sudo tgt-admin --delete $i |
|
| 147 |
+ done |
|
| 148 |
+ fi |
|
| 148 | 149 |
|
| 149 |
- if is_ubuntu; then |
|
| 150 |
- stop_service tgt |
|
| 150 |
+ if is_ubuntu; then |
|
| 151 |
+ stop_service tgt |
|
| 152 |
+ else |
|
| 153 |
+ stop_service tgtd |
|
| 154 |
+ fi |
|
| 151 | 155 |
else |
| 152 |
- stop_service tgtd |
|
| 156 |
+ sudo cinder-rtstool get-targets | sudo xargs -rn 1 cinder-rtstool delete |
|
| 153 | 157 |
fi |
| 154 | 158 |
|
| 155 | 159 |
if is_service_enabled c-vol && [[ -n "$CINDER_ENABLED_BACKENDS" ]]; then |
| ... | ... |
@@ -224,7 +230,7 @@ function configure_cinder {
|
| 224 | 224 |
iniset $CINDER_CONF DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL |
| 225 | 225 |
iniset $CINDER_CONF DEFAULT verbose True |
| 226 | 226 |
|
| 227 |
- iniset $CINDER_CONF DEFAULT iscsi_helper tgtadm |
|
| 227 |
+ iniset $CINDER_CONF DEFAULT iscsi_helper "$CINDER_ISCSI_HELPER" |
|
| 228 | 228 |
iniset $CINDER_CONF database connection `database_connection_url cinder` |
| 229 | 229 |
iniset $CINDER_CONF DEFAULT api_paste_config $CINDER_API_PASTE_INI |
| 230 | 230 |
iniset $CINDER_CONF DEFAULT rootwrap_config "$CINDER_CONF_DIR/rootwrap.conf" |
| ... | ... |
@@ -388,6 +394,13 @@ function init_cinder {
|
| 388 | 388 |
function install_cinder {
|
| 389 | 389 |
git_clone $CINDER_REPO $CINDER_DIR $CINDER_BRANCH |
| 390 | 390 |
setup_develop $CINDER_DIR |
| 391 |
+ if [ "$CINDER_ISCSI_HELPER" = "tgtadm" ]; then |
|
| 392 |
+ if is_fedora; then |
|
| 393 |
+ install_package scsi-target-utils |
|
| 394 |
+ else |
|
| 395 |
+ install_package tgt |
|
| 396 |
+ fi |
|
| 397 |
+ fi |
|
| 391 | 398 |
} |
| 392 | 399 |
|
| 393 | 400 |
# install_cinderclient() - Collect source and prepare |
| ... | ... |
@@ -415,21 +428,23 @@ function start_cinder {
|
| 415 | 415 |
service_port=$CINDER_SERVICE_PORT_INT |
| 416 | 416 |
service_protocol="http" |
| 417 | 417 |
fi |
| 418 |
- if is_service_enabled c-vol; then |
|
| 419 |
- # Delete any old stack.conf |
|
| 420 |
- sudo rm -f /etc/tgt/conf.d/stack.conf |
|
| 421 |
- _configure_tgt_for_config_d |
|
| 422 |
- if is_ubuntu; then |
|
| 423 |
- sudo service tgt restart |
|
| 424 |
- elif is_fedora || is_suse; then |
|
| 425 |
- restart_service tgtd |
|
| 426 |
- else |
|
| 427 |
- # note for other distros: unstack.sh also uses the tgt/tgtd service |
|
| 428 |
- # name, and would need to be adjusted too |
|
| 429 |
- exit_distro_not_supported "restarting tgt" |
|
| 418 |
+ if [ "$CINDER_ISCSI_HELPER" = "tgtadm" ]; then |
|
| 419 |
+ if is_service_enabled c-vol; then |
|
| 420 |
+ # Delete any old stack.conf |
|
| 421 |
+ sudo rm -f /etc/tgt/conf.d/stack.conf |
|
| 422 |
+ _configure_tgt_for_config_d |
|
| 423 |
+ if is_ubuntu; then |
|
| 424 |
+ sudo service tgt restart |
|
| 425 |
+ elif is_fedora || is_suse; then |
|
| 426 |
+ restart_service tgtd |
|
| 427 |
+ else |
|
| 428 |
+ # note for other distros: unstack.sh also uses the tgt/tgtd service |
|
| 429 |
+ # name, and would need to be adjusted too |
|
| 430 |
+ exit_distro_not_supported "restarting tgt" |
|
| 431 |
+ fi |
|
| 432 |
+ # NOTE(gfidente): ensure tgtd is running in debug mode |
|
| 433 |
+ sudo tgtadm --mode system --op update --name debug --value on |
|
| 430 | 434 |
fi |
| 431 |
- # NOTE(gfidente): ensure tgtd is running in debug mode |
|
| 432 |
- sudo tgtadm --mode system --op update --name debug --value on |
|
| 433 | 435 |
fi |
| 434 | 436 |
|
| 435 | 437 |
run_process c-api "$CINDER_BIN_DIR/cinder-api --config-file $CINDER_CONF" |
| ... | ... |
@@ -459,14 +474,6 @@ function stop_cinder {
|
| 459 | 459 |
for serv in c-api c-bak c-sch c-vol; do |
| 460 | 460 |
stop_process $serv |
| 461 | 461 |
done |
| 462 |
- |
|
| 463 |
- if is_service_enabled c-vol; then |
|
| 464 |
- if is_ubuntu; then |
|
| 465 |
- stop_service tgt |
|
| 466 |
- else |
|
| 467 |
- stop_service tgtd |
|
| 468 |
- fi |
|
| 469 |
- fi |
|
| 470 | 462 |
} |
| 471 | 463 |
|
| 472 | 464 |
# create_volume_types() - Create Cinder's configured volume types |
| ... | ... |
@@ -49,7 +49,7 @@ function configure_cinder_backend_lvm {
|
| 49 | 49 |
iniset $CINDER_CONF $be_name volume_backend_name $be_name |
| 50 | 50 |
iniset $CINDER_CONF $be_name volume_driver "cinder.volume.drivers.lvm.LVMVolumeDriver" |
| 51 | 51 |
iniset $CINDER_CONF $be_name volume_group $VOLUME_GROUP_NAME-$be_name |
| 52 |
- iniset $CINDER_CONF $be_name iscsi_helper "tgtadm" |
|
| 52 |
+ iniset $CINDER_CONF $be_name iscsi_helper "$CINDER_ISCSI_HELPER" |
|
| 53 | 53 |
|
| 54 | 54 |
if [[ "$CINDER_SECURE_DELETE" == "False" ]]; then |
| 55 | 55 |
iniset $CINDER_CONF $be_name volume_clear none |
| ... | ... |
@@ -108,15 +108,20 @@ function init_lvm_volume_group {
|
| 108 | 108 |
if is_fedora || is_suse; then |
| 109 | 109 |
# services is not started by default |
| 110 | 110 |
start_service lvm2-lvmetad |
| 111 |
- start_service tgtd |
|
| 111 |
+ if [ "$CINDER_ISCSI_HELPER" = "tgtadm" ]; then |
|
| 112 |
+ start_service tgtd |
|
| 113 |
+ fi |
|
| 112 | 114 |
fi |
| 113 | 115 |
|
| 114 | 116 |
# Start with a clean volume group |
| 115 | 117 |
_create_lvm_volume_group $vg $size |
| 116 | 118 |
|
| 117 | 119 |
# Remove iscsi targets |
| 118 |
- sudo tgtadm --op show --mode target | grep Target | cut -f3 -d ' ' | sudo xargs -n1 tgt-admin --delete || true |
|
| 119 |
- |
|
| 120 |
+ if [ "$CINDER_ISCSI_HELPER" = "lioadm" ]; then |
|
| 121 |
+ sudo cinder-rtstool get-targets | sudo xargs -rn 1 cinder-rtstool delete |
|
| 122 |
+ else |
|
| 123 |
+ sudo tgtadm --op show --mode target | grep Target | cut -f3 -d ' ' | sudo xargs -n1 tgt-admin --delete || true |
|
| 124 |
+ fi |
|
| 120 | 125 |
_clean_lvm_volume_group $vg |
| 121 | 126 |
} |
| 122 | 127 |
|