一、知识点分析

1.什么是对象存储?
  OSS(Object Storage Service)对象存储具有稳定可靠、安全合规、智能存储、成本低等优势,简单来说在云上提供无层次结构的分布式存储产品,为用户提供单价较低且快速可靠的数据存储方案。用户可通过云服务器实例或互联网使用 Web API 接口存储和检索数据。

2.OSS和OOS的关系?
  对象/文件(Object)是OOS存储数据的基本单位,也被称为OSS的文件。

二、工具包

三、实战

1.OSS命令管理安装与配置
(基于CentOS7 Linux环境操作)

#安装相关命令
tar -xvf oss.tar.gz 
cd oss/
yum -y localinstall s3cmd-2.3.0-1.el7.noarch.rpm 		//管理命令安装
yum -y localinstall s3fs-fuse-1.91-1.el7.x86_64.rpm		//挂载命令安装

怎么把对象存入mysql 对象存储数据迁移_运维


配置OSS对象存储连接信息

s3cmd --configure <<EOF
7347xxxxxxxxx31b864e							//Access Key
1cb5e97xxxxxxxxxxxxxxxxx99495f443eeb07			//Secret Key 
cn												//中国时区
oos-cn.ctyunapi.cn								//Endpoint
%(bucket)s.oos-cn.ctyunapi.cn					//%(bucket)s.Endpoint
1cb5e97xxxxxxxxxxxxxxxxx99495f443eeb07			//Secret Key 
												//回车
												//回车,如果是私有OSS请写No
												//回车
Y												//使用提供的凭据测试访问?是
y												//是否保存配置?是
EOF

怎么把对象存入mysql 对象存储数据迁移_怎么把对象存入mysql_02


(注意:公有云的OSS可以默认开启https传输,私有的只允许内网访问的需要关闭此选项)

2.OSS命令管理基本使用

#上传文件                          s3cmd put V2rayU.dmp s3://pictest/
#下载文件                          s3cmd get s3://iosdemo/viewDidLoad620205141.mp4
#删除文件                          s3cmd del s3://iosdemo/viewDidLoad620205141.mp4
s3cmd ls						//可以查看到自己的桶信息了
s3cmd ls s3://ljfl-1			//具体通文件内容
s3cmd put test.txt s3://ljfl-1	//上传文件(touch test.txt)
s3cmd get s3://ljfl-1/test.txt	//下载文件(rm -rf test.txt 不可重名 不然无法下载)
s3cmd del s3://ljfl-1/test.txt	//删除文件

怎么把对象存入mysql 对象存储数据迁移_怎么把对象存入mysql_03


3.OSS挂载到本地

创建访问凭据

#Access Key:Secret Key 
echo "7347xxxxxxxxx31b864e:1cb5e97xxxxxxxxxxxxxxxxx99495f443eeb07"  > /root/.passwd-s3fs && chmod 600 /root/.passwd-s3fs

需要OSS管理员提供:bucket名、AccessKeyID、AccessSecretKey:、endpoint 地址

#创建好空目录mkdir /data
s3fs ljfl-1    /data   -o passwd_file=/root/.passwd-s3fs  -o url=http://oos-cn.ctyunapi.cn -o allow_other
	 bucket名  挂载的路径               密码文件路径                  endpoint 地址

从下图中可以看到OSS对象存储以及挂载到本地了,并且可以像正常目录一样访问:

怎么把对象存入mysql 对象存储数据迁移_怎么把对象存入mysql_04

4.OOS数据迁移
(注意:本次迁移案例:OOS[天翼云]迁移到COS[腾讯云])
安装jdk1.8

tar -xvf jdk1.8.0_181.tar.gz -C /srv/program/
vim /etc/profile
...
export JAVA_HOME=/srv/program/jdk1.8.0_181
export JRE_HOME=/srv/program/jdk1.8.0_181/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=./:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
:wq			//保存退出
source  /etc/profile		//刷新环境变量
java -version				//查看版本

怎么把对象存入mysql 对象存储数据迁移_3c_05


安装迁移工具

unzip CTYUN_OOS_Import_1.2.4.zip 
cd CTYUN_OOS_Import_1.2.4/
目录结构:
CTYUN_OOS_Import_1.2.4
|----config
|-------log4j2.xml			//日志级别配置文件
|-------migrate.conf		//迁移信息配置文件
|-------system.conf			//工具参数调节配置文件
|----lib
|----import.sh
|----import.bat

怎么把对象存入mysql 对象存储数据迁移_3c_06


配置system.conf (根据自己服务器性能具体优化)

cat system.conf 
{
    "threadNum":100,				//并发数(1~3000)
    "maxSimpleObjectSizeM":100,		//对象大小限制,单位是 MiB
    "partSizeM":5,					//拆分为分段对象时的分片大小,单位 MiB
    "maxThroughput":-1,				//对源端流量进行限制,单位是 KiB/s
    "stopScan":false				//是否终止遍历源对象
}

配置migrate.conf

cat migrate.conf 
{
    "srcType":"OOS",												//迁移源类型
    "srcEndpoint":"oos-cn.ctyunapi.cn",								//源资源池 Endpoint
    "srcAccessKey":"7347xxxxxxxxx31b864e",							//源资源池账户 AccessKey
    "srcSecretKey":"1cb5e97xxxxxxxxxxxxxxxxx99495f443eeb07",		//源资源池账户 SecretKey
    "srcBucket":"ljfl-1",											//源资源池 Bucket
    "destEndpoint":"cos.hdregion.csp.hd.cloud189.cn",				//目标资源池 Endpoint
    "destAccessKey":"AKIDPZxxxxxxxxxxxxxxxxxxBWYFfma4",				//目标资源池 AccessKey
    "destSecretKey":"E8hvpOdY9xxxxxxxxxxxx4SVEbe",					//目标资源池 SecretKey
    "destBucket":"lajifenlei-1255000049",							//目标资源池 Bucket
    "isSkipExistFile":false											//是否跳过目标资源池中已有的对象。
}

启动

#数据迁移工具支持断点续传,如果迁移过程中程序被终止了,可以重新启动迁移任务,从之前中断的位置继续开始迁移。
./import.sh

怎么把对象存入mysql 对象存储数据迁移_运维_07


查看传输进度

cat statistics.txt

怎么把对象存入mysql 对象存储数据迁移_运维_08


(提示:其他参数详情可参考 ”OOS数据迁移工具使用手册“)

三、结束语

  本次实战对象存储管理、使用、迁移到此就结束了