Closed jackjia-ibm closed 3 years ago
Related to api-layer#863
This could be a way to define shared folder in sysplex: In this way,
/LPAR1/var/zowe/instance/instance.env
and /LPAR2/var/zowe/instance/instance.env
can be different, but /LPAR1/var/zowe/instance/shared/instance.env
and /LPAR2/var/zowe/instance/shared/instance.env
will be same because the shared mountpoint is using same ZFS.
Additional configuration on VSAM data set, we need to limit its access to Zowe user/group only.
VSAM
Zowe will use the KSDS VSAM data cluster. KSDS most closely resembles the actual cache as it is a way to store key/value pairs and effectively retrieve the value based on the key. Other reasons for using VSAM are described here. One good example setup for VSAM is Walmart’s zECS which is open-sourced at https://github.com/walmartlabs/zECS.
VSAM will be used via a Java library available in the z/OS environment. The example of usage is available at this link.
To prevent the limitation of keys of the same size, we will create a hash of the key and store the value under the cache. We will use the master key to differentiate the services and alternative key to differentiate the key/value pairs. This will allow us to retrieve all key/value pairs for a specific service. To prevent losing information contained in the key, we will store a JSON in the format of {“key”: “keyValue”, “value”: “valueValue”}
Prerequisites Open Question
What are the requirements of the VSAM set up in the system?
VSAM data set encryption
This encryption can be done through SAF controls and functions along with SMS policies. Encrypted data sets must be in SMS-managed extended format. ICSF can be used to encrypt the data.
(Copied from Jakub's doc https://docs.google.com/document/d/1Z8T1mq7MRYzxREL2pf1zTlj0tP7fqaR2ba31TZHX0Qw/edit#)
Since we couldn't mount shared under instance directory of each lpar, we have to put the shared folder into /global
and allow the user to customize it. Here is the suggested folders for Zowe installation:
# shared runtime (ZOWE_ROOT_DIR/ROOT_DIR)
/usr/lpp/zowe
# shared extension runtime (ZWE_EXTENSION_DIR)
/global/zowe/extension
# shared instance configs (ZOWE_INSTANCE_DIR/INSTANCE_DIR)
/global/zowe/instance/zowe.yaml (or)
/global/zowe/instance/instance.env -
ZWE_DISCOVERY_SERVICES_LIST=https://tivlp13:7553/eureka,https://tivlp14:7553/eureka
# other shared instance folders
/global/zowe/instance/logs
/global/zowe/instance/workspace/api-mediation/static-defs
/global/zowe/instance/workspace/app-server/plugins
# shared keystore
/global/zowe/keystore
Details of setup VSAM are posted https://github.com/zowe/api-layer/issues/889#issuecomment-710626292. Pending work: limit data set access to ZWESVUSR.
Is your feature request related to a problem? Please describe.
The feature supports the overall Zowe HA plan. This feature is relevant for Sysplex deployment.
Describe the solution you'd like
Additional context
The VSAM data set will be used by Caching API.