脚本使用说明:
ceph迁移
导出
1、下载s3cmd:yum install s3cmd -y
2、修改配置文件,创建 /root/.s3cfg文件到ceph主节点的root目录下,修改IP:Port以及账户信息
3、执行ceph_export.sh 脚本
导入
1、迁移ceph_data.tar.gz到目标机器
2、下载s3cmd:yum install s3cmd -y
3、修改配置文件,创建 /root/.s3cfg文件到ceph主节点的root目录下,修改IP:Port以及账户信息
注:确保配置文件账户信息与项目所用的ceph的配置一致
内容参考 如下:
vim /root/.s3cfg
[default]
access_key = 4BGJ6G1IYW09KO2AKDUE
secret_key = 1DFvpB84BvdatzBrtw4bfAyZpA5DZOahxUoXHD7a
host_base = 127.0.0.1:8899
host_bucket = 127.0.0.1:8899/%(bucket)
use_https = False
4、通过S3Browser客户端创建相应的桶,确保用户配置与Apollo的配置一致
5、执行ceph_import.sh jio本
脚本内容:
#!/bin/bash
function download(){
array=`s3cmd ls | cut -d "/" -f 3`
cd ${backup_path}/${date}
for element in ${array[@]}
do
mkdir $element
s3cmd get s3://${element}/"*" ${backup_path}/${date}/${element}/
echo "bucket ${element} 下载完成"
done
cd ${backup_path}
tar -zcf ceph_data_${date}.tar.gz ${date}
sleep 5
}
function check(){
if [ `rpm -qa|grep s3cmd >/dev/null && echo $?` != 0 ];then
yum install s3cmd
echo "s3cmd 安装完成..."
else
echo "s3cmd 已经正常安装!!"
fi
}
#备份路径,需要根据具体修改
backup_path="/data1/ceph_data/ceph_bak/data"
##备份日志路径,需要根据具体修改
backup_log_path="/data1/ceph_data/ceph_bak/logs"
date=$(date +%Y-%m-%d_%H-%M-%S)
backup_log="${backup_log_path}/ceph_export_${date}.log"
if [ ! -d ${backup_path}/${date} ];then
mkdir -p {$backup_path/${date},$backup_log_path}
else
echo "========${date}:文件夹已经存在=======" >> ${backup_log}
fi
echo "开始检查s3cmd" >> ${backup_log}
check
echo "开始下载ceph数据" >> ${backup_log}
download
附上恢复脚本:
#!/bin/bash
#使用前需要编写好需要恢复的桶名到list文件中,bucket_list.txt
function import(){
while read line
do s3cmd mb s3://${line}
#根据桶名的列表bucket_list.txt进行创建桶
done < bucket_list.txt
array=`s3cmd ls | cut -d "/" -f 3`
cd ${1}
for element in ${array[@]}
do
s3cmd put ${element}/* s3://${element}/
echo "bucket ${element} 导入完成"
done
sleep 5
}
function check(){
if [ `rpm -qa|grep s3cmd >/dev/null && echo $?` != 0 ];then
yum install s3cmd
echo "s3cmd 安装完成..."
else
echo "s3cmd 已经正常安装!!"
fi
}
read -p "确定s3cmd是否正确安装?(y/n):" judge
if [ $judge = 'y' -o $judge = 'Y' ];then
read -p "请输入ceph数据存储的位置 : " floder
echo "开始导入..."
import ${floder}
else
echo "检查安装"
check
read -p "请输入ceph数据存储的位置 : " floder
echo "开始导入..."
import ${floder}
fi
其中bucket_list.txt内容举例如下:
[root@ceph-te-3p193 opt]# cat bucket_list.txt
casejoin
dailyreport
dw-finger-image
dw-portrait-image
dw-url
eventwarning
infopublish
infopublishtest
monitor
photo
taskmanager