The Manila cDOT driver is a single file exceeding 1200 lines. It contains multiple things (driver code, protocol helpers, ZAPI invocation code, options) that should be split apart to allow for easier maintenance and readability and add the potential for code sharing when we reintroduce a 7-mode driver, add a single-SVM cDOT driver, etc. We recently refactored NetApp's DOT Cinder drivers into a 4-layer structure (interface, library, client, API) that separates concerns and achieves the goals set forth above. This commit satisfies a plan to do the same thing in Manila. The implementation steps are: 1. Update directory structure to match that of the Cinder NetApp drivers 2. Create driver interface shim 3. Move driver code to library (with base & C-mode classes, to allow for 7-mode code sharing later) 4. Move protocol helpers to separate files (already organized by base & C-mode classes) 5. Split out ZAPI code to client layer (with base & C-mode classes, to allow for 7-mode code sharing later) 6. Implement NetApp driver factory as in Cinder 7. Implement common NetApp options file as in Cinder 8. Implement cDOT API call optimizations 9. Update all unit tests as needed Note that this patch appears to treble the total number of code lines. This is due to the addition of many more unit tests plus a large amount of fake controller API data to feed the API client tests. Implements: blueprint netapp-manila-cdot-driver-refactoring Closes-Bug: #1410317 Partial-Bug: #1396953 Closes-Bug: #1370965 Closes-Bug: #1418690 Closes-Bug: #1418696 Change-Id: I3fc0d09adf84a3708f110a89a7c8c760f4ce3588
66 lines
2.1 KiB
ReStructuredText
66 lines
2.1 KiB
ReStructuredText
..
|
|
Copyright 2014 Mirantis Inc.
|
|
All Rights Reserved.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
not use this file except in compliance with the License. You may obtain
|
|
a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
License for the specific language governing permissions and limitations
|
|
under the License.
|
|
|
|
NetApp Clustered Data ONTAP
|
|
===========================
|
|
|
|
The Manila Shared Filesystem Management Service can be configured to use
|
|
NetApp clustered Data ONTAP version 8.
|
|
|
|
Network approach
|
|
----------------
|
|
|
|
L3 connectivity between the storage cluster and Manila host should exist, and
|
|
VLAN segmentation should be configured.
|
|
|
|
The clustered Data ONTAP driver creates storage virtual machines (SVM,
|
|
previously known as vServers) as representations of Manila share server
|
|
interface, configures logical interfaces (LIFs) and stores shares there.
|
|
|
|
Supported shared filesystems
|
|
----------------------------
|
|
|
|
- NFS (access by IP);
|
|
- CIFS (authentication by user);
|
|
|
|
Required licenses
|
|
-----------------
|
|
|
|
- NFS
|
|
- CIFS
|
|
- FlexClone
|
|
|
|
Known restrictions
|
|
------------------
|
|
|
|
- For CIFS shares an external active directory service is required. Its data
|
|
should be provided via security-service that is attached to used
|
|
share-network.
|
|
- Share access rule by user for CIFS shares can be created only for existing
|
|
user in active directory.
|
|
- To be able to configure clients to security services, the time on these
|
|
external security services and storage should be synchronized. The maximum
|
|
allowed clock skew is 5 minutes.
|
|
|
|
The :mod:`manila.share.drivers.netapp.dataontap.cluster_mode.drv_multi_svm.py` Module
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. automodule:: manila.share.drivers.netapp.dataontap.cluster_mode.drv_multi_svm
|
|
:noindex:
|
|
:members:
|
|
:undoc-members:
|
|
:show-inheritance:
|