From e36f790d036c0bfb5d7ed81d656f9bb1f5200a1a Mon Sep 17 00:00:00 2001 From: Dan Radez Date: Mon, 14 Nov 2016 12:36:27 -0500 Subject: Allow passing a device name to ceph JIRA: APEX-347 Change-Id: Ibc6d141e20faf613e0f6314286b55aff01ce862e Signed-off-by: Dan Radez --- config/deploy/deploy_settings.yaml | 7 +++++++ docs/installationprocedure/architecture.rst | 7 +++++++ lib/python/apex/deploy_settings.py | 2 +- lib/undercloud-functions.sh | 4 ++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/config/deploy/deploy_settings.yaml b/config/deploy/deploy_settings.yaml index e7821f18..ee1dc146 100644 --- a/config/deploy/deploy_settings.yaml +++ b/config/deploy/deploy_settings.yaml @@ -48,6 +48,13 @@ deploy_options: # Whether to run vsperf after the install has completed #vsperf: false + # Specify a device for ceph to use for the OSDs. By default a virtual disk + # is created for the OSDs. This setting allows you to specify a different + # target for the OSDs. The setting must be valid on all overcloud nodes. + # The controllers and the compute nodes all have OSDs setup on them and + # therefore this device name must be valid on all overcloud nodes. + #ceph_device: /dev/sdb + # Set performance options on specific roles. The valid roles are 'Compute', 'Controller' # and 'Storage', and the valid sections are 'kernel' and 'nova' #performance: diff --git a/docs/installationprocedure/architecture.rst b/docs/installationprocedure/architecture.rst index c2b38d00..33536788 100644 --- a/docs/installationprocedure/architecture.rst +++ b/docs/installationprocedure/architecture.rst @@ -44,6 +44,7 @@ will run the following services: - OpenDaylight - HA Proxy - Pacemaker & VIPs +- Ceph Monitors and OSDs Stateless OpenStack services All running statesless OpenStack services are load balanced by HA Proxy. @@ -77,6 +78,12 @@ Pacemaker & VIPs start up order and Virtual IPs associated with specific services are running on the proper host. +Ceph Monitors & OSDs + The Ceph monitors run on each of the control nodes. Each control node also + has a Ceph OSD running on it. By default the OSDs use an autogenerated + virtual disk as their target device. A non-autogenerated device can be + specified in the deploy file. + VM Migration is configured and VMs can be evacuated as needed or as invoked by tools such as heat as part of a monitored stack deployment in the overcloud. diff --git a/lib/python/apex/deploy_settings.py b/lib/python/apex/deploy_settings.py index 5490c6e9..a27d13f1 100644 --- a/lib/python/apex/deploy_settings.py +++ b/lib/python/apex/deploy_settings.py @@ -21,7 +21,7 @@ REQ_DEPLOY_SETTINGS = ['sdn_controller', 'vpn', 'vpp'] -OPT_DEPLOY_SETTINGS = ['performance', 'vsperf'] +OPT_DEPLOY_SETTINGS = ['performance', 'vsperf', 'ceph_device'] VALID_ROLES = ['Controller', 'Compute', 'ObjectStorage'] VALID_PERF_OPTS = ['kernel', 'nova', 'vpp'] diff --git a/lib/undercloud-functions.sh b/lib/undercloud-functions.sh index d3beb60c..bd93aa78 100755 --- a/lib/undercloud-functions.sh +++ b/lib/undercloud-functions.sh @@ -207,6 +207,10 @@ openstack-config --set undercloud.conf DEFAULT undercloud_hostname "undercloud.$ sudo openstack-config --set /etc/ironic/ironic.conf disk_utils iscsi_verify_attempts 30 sudo openstack-config --set /etc/ironic/ironic.conf disk_partitioner check_device_max_retries 40 +if [[ -n "${deploy_options_array['ceph_device']}" ]]; then + sed -i '/ExtraConfig/a\\ ceph::profile::params::osds: {\\x27${deploy_options_array['ceph_device']}\\x27: {}}' opnfv-environment.yaml +fi + sudo sed -i '/CephClusterFSID:/c\\ CephClusterFSID: \\x27$(cat /proc/sys/kernel/random/uuid)\\x27' /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml sudo sed -i '/CephMonKey:/c\\ CephMonKey: \\x27'"\$(ceph-authtool --gen-print-key)"'\\x27' /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml sudo sed -i '/CephAdminKey:/c\\ CephAdminKey: \\x27'"\$(ceph-authtool --gen-print-key)"'\\x27' /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml -- cgit 1.2.3-korg