# DSS
**Repository Path**: liuzhanfeng2/DSS
## Basic Information
- **Project Name**: DSS
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 82
- **Created**: 2023-07-31
- **Last Updated**: 2024-07-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# DSS
DSS:Distributed Storage Service,分布式存储服务,是一款提供分布式存储服务的基础组件。
支持裸设备的访问及管理,提供卷组、卷、目录、文件的创建、删除、访问等API操作及运维工具;支持多节点相同文件元数据同步,支撑数据库共享存储架构。
#### 一、工程说明
##### 1、编程语言:C
##### 2、编译工具:cmake或make,建议使用cmake
##### 3、目录说明:
- DSS:主目录,CMakeLists.txt为主工程入口;
- src: 源代码目录,按子目录划分通用功能函数;
- build:工程构建脚本
#### 二、ceph使用
##### 1、创建ceph的块设备(存储池和image)
- 创建存储池: ceph osd pool create dsspool 64 64
- 创建image: rbd create dssimage --size 10240MB --pool dsspool --image-format 2 --image-feature layering
- 挂载: rbd map dsspool/dssimage
##### 2、在初始化dss时候需要写入ceph相关配置
- DSSDATA=/dev/rbd0
- DSSHOME=${DSSDATA}
- echo "VOLUME_TYPES=${DSSDATA}=1" > ${DSSHOME}/cfg/dss_inst.ini
- echo "POOL_NAMES=${DSSDATA}=dsspool" >> ${DSSHOME}/cfg/dss_inst.ini
- echo "IMAGE_NAMES=${DSSDATA}=dssimage" >> ${DSSHOME}/cfg/dss_inst.ini
- echo "CEPH_CONFIG=/etc/ceph/ceph.conf" >> ${DSSHOME}/cfg/dss_inst.ini
- `DSSDATA=/dev/rbd0` 为挂载ceph块设备。
- POOL_NAMES为存储池配置,格式为 `/dev/rbd0=dsspool`
- IMAGE_NAMES为image配置,格式为 `/dev/rbd0=dssimage`
- CEPH_CONFIG为ceph集群配置文件,默认是`/etc/ceph/ceph.conf`
#### 三、编译指导
##### 1、操作系统和软件依赖要求
支持以下操作系统:
- CentOS 7.6(x86)
- openEuler-20.03-LTS
适配其他系统,可参照openGauss数据库编译指导
##### 2、下载DSS
可以从开源社区下载DSS。
##### 3、代码编译
使用DSS/build/linux/opengauss/build.sh编译代码, 参数说明请见以下表格。
| 选项 | 参数 | 说明 |
| --- |:--- | :--- |
| -3rd | [binarylibs path] | 指定binarylibs路径。该路径必须是绝对路径。 |
| -m | [version_mode] | 编译目标版本,Debug或者Release。默认Release|
| -t | [build_tool] | 指定编译工具,cmake或者make。默认cmake |
现在只需使用如下命令即可编译:
[user@linux]$ sh build.sh -3rd [binarylibs path] -m Release -t cmake
完成编译后,动态库生成在DSS/output/lib目录中