Enable manila with cephfs driver

This enables manila with cephfs backend in scenario 004 test.

Depends-on: https://review.opendev.org/884461
Change-Id: I60d6ce301cf714cd918becaf493eb7396ec9631a
This commit is contained in:
Takashi Kajinami 2023-05-25 15:38:50 +09:00
parent 9ab8f9a60f
commit 85937d4666
6 changed files with 69 additions and 19 deletions

View File

@ -54,7 +54,7 @@ scenario](#all-in-one).
| placement | | X | X | X | X | X | X | | placement | | X | X | X | X | X | X |
| neutron | | ovs | ovs | ovn | ovs | ovn | ovs | | neutron | | ovs | ovs | ovn | ovs | ovn | ovs |
| cinder | | rbd | iscsi | | | iscsi | iscsi | | cinder | | rbd | iscsi | | | iscsi | iscsi |
| manila | | | | | | lvm | | | manila | | | | | cephfs | lvm | |
| ceilometer | | X | X | | | | | | ceilometer | | X | X | | | | |
| aodh | | X | X | | | | | | aodh | | X | X | | | | |
| designate | | | | bind | | | | | designate | | | | bind | | | |
@ -73,6 +73,7 @@ scenario](#all-in-one).
| mistral | | | | X | | | | | mistral | | | | X | | | |
| barbican | | | X | X | | | | | barbican | | | X | X | | | |
| ceph | | X | | | X | | | | ceph | | X | | | X | | |
| ceph mds | | | | | X | | |
| ceph rgw | | | | | X | | | | ceph rgw | | | | | X | | |
| vitrage | | X | | | | | | | vitrage | | X | | | | | |
| watcher | | | | | X | | | | watcher | | | | | X | | |

View File

@ -300,6 +300,7 @@ if [ `command -v ceph` ]; then
sudo ceph osd tree > $LOG_DIR/ceph-cmd/ceph-osd-tree.txt sudo ceph osd tree > $LOG_DIR/ceph-cmd/ceph-osd-tree.txt
sudo ceph df > $LOG_DIR/ceph-cmd/ceph-df.txt sudo ceph df > $LOG_DIR/ceph-cmd/ceph-df.txt
sudo ceph osd pool ls detail > $LOG_DIR/ceph-cmd/ceph-osd-pool-ls.txt sudo ceph osd pool ls detail > $LOG_DIR/ceph-cmd/ceph-osd-pool-ls.txt
sudo ceph fs ls > $LOG_DIR/ceph-cmd/ceph-fs-ls.txt
sudo ceph-volume lvm list ceph_vg/lv_data > $LOG_DIR/ceph-cmd/ceph-volume-lvm-list.txt sudo ceph-volume lvm list ceph_vg/lv_data > $LOG_DIR/ceph-cmd/ceph-volume-lvm-list.txt
fi fi

View File

@ -63,13 +63,17 @@ class { 'openstack_integration::nova':
} }
class { 'openstack_integration::ceph': class { 'openstack_integration::ceph':
deploy_rgw => true, deploy_rgw => true,
swift_dropin => true, swift_dropin => true,
create_cephfs => true,
} }
class { 'openstack_integration::horizon': class { 'openstack_integration::horizon':
octavia_enabled => true octavia_enabled => true
} }
include openstack_integration::watcher include openstack_integration::watcher
class { 'openstack_integration::manila':
backend => 'cephfsnative'
}
include openstack_integration::octavia include openstack_integration::octavia
include openstack_integration::provision include openstack_integration::provision
@ -77,11 +81,13 @@ include openstack_integration::provision
# Don't test swift, radosgw won't pass the current tests # Don't test swift, radosgw won't pass the current tests
# Glance, nova, neutron are true by default. # Glance, nova, neutron are true by default.
class { 'openstack_integration::tempest': class { 'openstack_integration::tempest':
horizon => true, horizon => true,
watcher => true, watcher => true,
bgpvpn => $bgpvpn_enabled, bgpvpn => $bgpvpn_enabled,
l2gw => $l2gw_enabled, l2gw => $l2gw_enabled,
l2gw_switch => 'cell08-5930-01::FortyGigE1/0/1|100', l2gw_switch => 'cell08-5930-01::FortyGigE1/0/1|100',
dr => $bgp_dragent_enabled, dr => $bgp_dragent_enabled,
octavia => true, manila => true,
share_protocol => 'CEPHFS',
octavia => true,
} }

View File

@ -1,23 +1,27 @@
# Configure the Ceph services # Configure the Ceph services
# #
# [*deploy_rgw*] # [*deploy_rgw*]
# (optional) Setting flag to enable the deployment # (optional) Setting flag to enable the deployment of Ceph RadosGW and
# of Ceph RadosGW and configure various services # configure various services to use Swift provided by RGW as a backend.
# to use Swift provided by RGW as a backend.
# Defaults to false # Defaults to false
# #
# [*swift_dropin*] # [*swift_dropin*]
# (optional) Flag if Ceph RGW will provide swift # (optional) Flag if Ceph RGW will provide swift services for openstack
# services for openstack # Defaults to false
# #
# [*pg_num*] # [*pg_num*]
# (optional) Number of PGs per pool. # (optional) Number of PGs per pool.
# Defaults to 16. # Defaults to 16.
# #
# [*create_cephfs*]
# (optional) Flag if CephFS will be created.
# Defaults to false
#
class openstack_integration::ceph ( class openstack_integration::ceph (
$deploy_rgw = false, $deploy_rgw = false,
$swift_dropin = false, $swift_dropin = false,
$pg_num = 16, $pg_num = 16,
$create_cephfs = false,
) { ) {
include openstack_integration::config include openstack_integration::config
@ -67,6 +71,7 @@ test -b /dev/ceph_vg/lv_data
osd_pool_default_min_size => '1', osd_pool_default_min_size => '1',
mon_key => 'AQD7kyJQQGoOBhAAqrPAqSopSwPrrfMMomzVdw==', mon_key => 'AQD7kyJQQGoOBhAAqrPAqSopSwPrrfMMomzVdw==',
mgr_key => 'AQD7kyJQQGoOBhAAqrPAqSopSwPrrfMMomzVdw==', mgr_key => 'AQD7kyJQQGoOBhAAqrPAqSopSwPrrfMMomzVdw==',
mds_key => 'AQD7kyJQQGoOBhAAqrPAqSopSwPrrfMMomzVdw==',
osd_max_object_name_len => 256, osd_max_object_name_len => 256,
osd_max_object_namespace_len => 64, osd_max_object_namespace_len => 64,
client_keys => { client_keys => {
@ -88,6 +93,12 @@ test -b /dev/ceph_vg/lv_data
'cap_mon' => 'profile rbd', 'cap_mon' => 'profile rbd',
'cap_osd' => 'profile rbd pool=cinder, profile rbd pool=nova, profile rbd pool=glance, profile rbd pool=gnocchi', 'cap_osd' => 'profile rbd pool=cinder, profile rbd pool=nova, profile rbd pool=glance, profile rbd pool=gnocchi',
}, },
'client.manila' => {
'secret' => 'AQD7kyJQQGoOBhAAqrPAqSopSwPrrfMMomzVdw==',
'mode' => '0644',
'cap_mgr' => 'allow rw',
'cap_mon' => 'allow r',
}
}, },
osds => { osds => {
'ceph_vg/lv_data' => {}, 'ceph_vg/lv_data' => {},
@ -109,6 +120,23 @@ test -b /dev/ceph_vg/lv_data
class { 'ceph::profile::mon': } class { 'ceph::profile::mon': }
class { 'ceph::profile::osd': } class { 'ceph::profile::osd': }
if $create_cephfs {
ceph::pool { ['cephfs_data', 'cephfs_metadata']:
pg_num => $pg_num,
}
-> ceph::fs { 'cephfs':
metadata_pool => 'cephfs_metadata',
data_pool => 'cephfs_data',
}
~> exec { 'enable cephfs snapshot':
command => 'ceph fs set cephfs allow_new_snaps true',
path => ['/bin', '/usr/bin'],
refreshonly => true,
tag => 'create-cephfs',
}
class { 'ceph::profile::mds': }
}
# Extra Ceph configuration to increase performances # Extra Ceph configuration to increase performances
$ceph_extra_config = { $ceph_extra_config = {
'global/osd_journal_size' => { value => '100' }, 'global/osd_journal_size' => { value => '100' },

View File

@ -91,8 +91,15 @@ class openstack_integration::manila (
memcached_servers => $::openstack_integration::config::memcached_servers, memcached_servers => $::openstack_integration::config::memcached_servers,
service_token_roles_required => true, service_token_roles_required => true,
} }
$share_protocol = $backend ? {
'cephfsnative' => 'CEPHFS',
default => 'NFS'
}
class { 'manila::api': class { 'manila::api':
service_name => 'httpd', service_name => 'httpd',
enabled_share_protocols => $share_protocol,
} }
include apache include apache
class { 'manila::wsgi::apache': class { 'manila::wsgi::apache':
@ -119,6 +126,12 @@ class openstack_integration::manila (
lvm_share_export_ips => $::openstack_integration::config::host, lvm_share_export_ips => $::openstack_integration::config::host,
} }
} }
'cephfsnative': {
manila::backend::cephfs { 'cephfsnative':
cephfs_conf_path => '/etc/ceph/ceph.conf',
}
Exec<| tag == 'create-cephfs' |> -> Anchor['manila::service::begin']
}
default: { default: {
fail("Unsupported backend (${backend})") fail("Unsupported backend (${backend})")
} }

View File

@ -324,6 +324,7 @@ echo 'barbican_tempest_plugin.tests.scenario.test_volume_encryption.VolumeEncryp
echo 'barbican_tempest_plugin.tests.scenario.test_image_signing.ImageSigningTest.test_signed_image_upload_and_boot' >> /tmp/openstack/tempest/test-include-list.txt echo 'barbican_tempest_plugin.tests.scenario.test_image_signing.ImageSigningTest.test_signed_image_upload_and_boot' >> /tmp/openstack/tempest/test-include-list.txt
# Manila # Manila
echo 'manila_tempest_tests.tests.api.test_shares.SharesCephFSTest.test_create_get_delete_share' >> /tmp/openstack/tempest/test-include-list.txt
echo 'manila_tempest_tests.tests.api.test_shares.SharesNFSTest.test_create_get_delete_share' >> /tmp/openstack/tempest/test-include-list.txt echo 'manila_tempest_tests.tests.api.test_shares.SharesNFSTest.test_create_get_delete_share' >> /tmp/openstack/tempest/test-include-list.txt
if uses_debs; then if uses_debs; then