File 启用对象存储
| 服务器IP | 主机角色 |
|---|---|
| 192.168.10.16 | File Node01 |
| 192.168.10.17 | File Node02 |
- File 各节点都需要提前安装 docker
- 启用对象存储模式下,各 File 节点部署文件存储方式相同
部署文件存储
-
下载镜像
- 服务器支持访问互联网
- 服务器不支持访问互联网
docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-file:1.7.0# 离线镜像包文件下载链接,下载完成后上传到部署服务器https://pdpublic.mingdao.com/private-deployment/offline/mingdaoyun-file-linux-amd64-1.7.0.tar.gz# 在服务器上通过 docker load -i 命令加载离线镜像docker load -i mingdaoyun-file-linux-amd64-1.7.0.tar.gz -
创建数据目录
mkdir -p /data/file/volume/{cache,data,fetchtmp,multitmp,tmp} -
创建配置文件存放目录
mkdir -p /usr/local/MDPrivateDeployment/clusterMode/config -
创建对接存储的 s3-config.json 文件 ,模板如下
cat > /usr/local/MDPrivateDeployment/clusterMode/config/s3-config.json << EOF{"mode": 1,"accessKeyID": "${Key}","secretAccessKey": "${Secret}","bucketEndPoint": "oss-cn-beijing.aliyuncs.com","bucketName": {"mdmedia": "oss-mdtest","mdpic": "oss-mdtest","mdpub": "oss-mdtest","mdoc": "oss-mdtest"},"region": "oss-cn-beijing"}EOF- 目前明道云系统共使用
mdmedia、mdpic、mdpub、mdoc4个 bucket,你可以在配置文件的 bucketName 字段中映射实际使用的 bucket
- 目前明道云系统共使用
-
创建 file.yaml 文件
cat > /usr/local/MDPrivateDeployment/clusterMode/file.yaml <<EOFversion: '3'services:file:image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-file:1.7.0volumes:- /usr/share/zoneinfo/Etc/GMT-8:/etc/localtime- /data/file/volume:/data/storage- /usr/local/MDPrivateDeployment/clusterMode/config/s3-config.json:/usr/local/file/s3-config.jsonports:- "9000:9000"environment:MINIO_ACCESS_KEY: storageMINIO_SECRET_KEY: 123456ENV_MINGDAO_PROTO: "http"ENV_MINGDAO_HOST: "hap.domain.com"ENV_MINGDAO_PORT: "80"# Redis 主从模式ENV_FILE_CACHE: "redis://:123456@192.168.10.13:6379"# Redis 哨兵模式#ENV_REDIS_SENTINEL_ENDPOINTS: "192.168.10.13:26379,192.168.10.14:26379,192.168.10.15:26379"#ENV_REDIS_SENTINEL_MASTER: "mymaster"#ENV_REDIS_SENTINEL_PASSWORD: "password"ENV_FILECACHE_EXPIRE: "false"ENV_FILE_ID: "file1"command: ["./main", "server", "/data/storage/data"]EOF- 变量中指定的访问地址,在部署中注意替换为实际的系统主地址
- redis 连接信息在实际部署中注意替换为实际的密码与IP
ENV_FILE_ID每个实例的此变量值需要不同,如file1,file2等
-
创建启动脚本
mkdir -p /usr/local/MDPrivateDeployment/clusterModecat > /usr/local/MDPrivateDeployment/start.sh <<EOFdocker stack deploy -c /usr/local/MDPrivateDeployment/clusterMode/file.yaml fileEOFchmod +x /usr/local/MDPrivateDeployment/start.sh -
初始化 swarm
docker swarm init
-
启动服务
bash /usr/local/MDPrivateDeployment/start.sh -
加入开机自启动
echo "bash /usr/local/MDPrivateDeployment/start.sh" >> /etc/rc.localchmod +x /etc/rc.local -
初始化预制文件
你可以使用各对象存储厂商所提供的工具,将 预制文件包中的内容(
mdmedia、mdpic、mdpub、mdoc4个文件夹下的数据)根据 bucketName 映射关系上传到云端对应的 bucket 中。