# 创建备份目录
mkdir -p /data/sdb/nfs/miniobackup/{bin,data}
# 下载mc(minio client)
curl -o /data/sdb/nfs/miniobackup/bin/mc https://dl.minio.org.cn/client/mc/release/linux-amd64/mc \
   && chmod +x /data/sdb/nfs/miniobackup/bin/mc

# 创建镜像备份脚本
cat > /data/sdb/nfs/miniobackup/bin/mirror.sh <<'EOF'
#!/usr/bin/env bash
BASE=/data/sdb/nfs/miniobackup
BIN=$BASE/bin
# 先删除再添加
$BIN/mc config host rm <别名> 2>/dev/nul
# NodePort 端口需要放行
$BIN/mc config host add <别名> <地址,如:http://nodeIP:nodePort> <MINIO账号> <MINIO密码> --api S3v4
# 备份(将指定别名的MinIO所有对象镜像到本地$BASE/data/)
/$BIN/mc mirror --overwrite <别名>/ $BASE/data/ | tee $BIN/mirror-`date +%Y%m%d%H%M%S`.log
# 删除配置
/$BIN/mc config host rm <别名>
EOF

# 每天1点执行一次镜像备份
echo "0 1 * * * root . /data/sdb/nfs/miniobackup/bin/mirror.sh" >> /etc/crontab

GPT提供参考

MinIO是一款高性能的对象存储服务,提供了备份和恢复机制来保护用户的数据。下面是一些备份和恢复方案以及相关的脚本或代码:

备份方案

  1. 使用mc工具备份

使用MinIO客户端(mc)可以非常方便地备份桶(bucket)中的数据:

# 备份桶中的数据
mc mirror s3/mybucket /mnt/backup/mybucket

# 备份整个MinIO服务器中的所有数据
mc mirror s3/ /mnt/backup/minio/

其中s3/为默认的桶根目录。

  1. 使用AWS S3 SDK备份

MinIO兼容AWS S3 API,因此可以使用AWS S3 SDK进行备份:

import boto3

# 创建S3客户端
s3 = boto3.client('s3', endpoint_url='https://minio.example.com',
                   aws_access_key_id='ACCESS_KEY',
                   aws_secret_access_key='SECRET_KEY')

# 备份桶mybucket中的数据到本地文件夹/mnt/backup/mybucket
s3.download_file('mybucket', 'sourcedir/sourcefile.txt', '/mnt/backup/mybucket/sourcedir/sourcefile.txt')

其中endpoint_url为MinIO服务器的地址,aws_access_key_idaws_secret_access_key为访问MinIO需要的认证信息,在MinIO的Web管理界面上可以获取。

恢复方案

  1. 使用mc工具恢复

使用mc工具可以很轻松地将数据恢复到MinIO服务器:

# 恢复mybucket桶中的数据
mc mirror /mnt/backup/mybucket s3/mybucket

# 恢复整个MinIO服务器中的所有数据
mc mirror /mnt/backup/minio s3/
  1. 使用AWS S3 SDK恢复

使用AWS S3 SDK也可以很方便地将备份数据恢复到MinIO服务器:

import boto3

# 创建S3客户端
s3 = boto3.client('s3', endpoint_url='https://minio.example.com',
                   aws_access_key_id='ACCESS_KEY',
                   aws_secret_access_key='SECRET_KEY')

# 将本地文件/mnt/backup/mybucket/sourcedir/sourcefile.txt恢复到桶mybucket中
s3.upload_file('/mnt/backup/mybucket/sourcedir/sourcefile.txt', 'mybucket', 'sourcedir/sourcefile.txt')

其中endpoint_urlaws_access_key_idaws_secret_access_key的含义同上。

总结

以上是两种备份与恢复方案及相关脚本或代码,选择哪种方案取决于实际需求和场景。建议在备份时定期测试数据的可用性,并在恢复之前进行必要的确认和验证。

文档更新时间: 2024-03-29 09:44   作者:姚连洲