构建自己的云服务之存储

牛客秋季活动第六天?

之前我们说了计算,网络,今天我们说说存储部分。

对象存储

对象存储,就是模仿了s3的相关功能,提供单个文件的扩展性功能,不能单一文件持续读写,用于存放一些数据文件,进入云存储的其他数据处理功能和调用api上有着良好的表现。

家用或者小型企业,可以尝试下面几种开源类软件,

minio

适配k8s的存储方向,支持分布式的存储,支持纠删码,目前比例是1:1吧,配置简单方便,同时支持多种api和sdk,兼容s3。

NAS

qnap的nas和群晖的nas均提供了简单的对象存储功能,配置简单方便,支持混合阵列存储的底层搭建。

swift

这个配置稍微复杂些,同时在多主机的基础上需要配置https,需要支持acl,很多云厂商的的对象存储用的就是swift的组件。

openmediavault

这是一个基于debian的系统,提供了很多文件的存取方式和相关协议。

FreeNAS

FreeNAS和FreeNAS Scale都是有s3的协议服务的,直接开启就可以了,底层用的是zfs,复杂的运维的话需要额外学习,老的系统版本是FreeBSD的,学习曲线长些,但是FreeNAS是专用存储,功能强大稳定。

FastDFS

培训班的或者java的课程里面有关于这些的内容,没有客户端和开发的功能,只有api和sdk,仅适合日常开发使用。

块存储

这个执牛耳的估计只有Ceph了,Ceph支持块存储,支持相关方式的切割,除了写入放大的缺点外其他效果挺好,三副本机制比纠删码的方式冗余度高些,同时支持云计算的其他的功能下很多底层操作。

如果不考虑云计算的方式,那么单机zfs的方式,raid5的方式btrfs的方式都是可以考虑的。不展开说明。

可以通过SAN小型机或者中型机的方式提供存储,通过iscsi的模拟块存储也是合理的方式。

归档存储

唔唔唔,这个企业的话上磁带库,自动换磁带的什么方式,结合sas盘控制存取速率,磁带库就完成啦。

家用的话,,,买个LTO-5或者LTO-6的磁带机,再买上二手的磁带,单T成本可以拉到极低。

备份

家用的话直接用备份软件,结合smb,ftp,s3,本地存储,各类云存储,nfs等等方式定期归档就好了,支持增量备份的。

当然,也可以ownCLoud nextCloud,Pydio,Syncthing,btsync等做同步镜像备份。

也可以用unison,rsync,parsync,bbcp等方式做字节级别的备份,效果也不错。

其他的服务提供方式

大数据可以提供HDFS,ClickHouse等等,ELK等方式做对应处理。

可以自建分层存储,这个目前个人使用bcache,也有dm-cache,flashcache,部分系统级软件有直接的分层存储,常用的NAS也有分层存储,windowsserver也有,illmos内核系列的os中也有低于多少TB的支持分层存储。

zfs也支持arc和log,zil负责分离日志和写入到不同的磁盘中。

还有什么遗忘的各位可以补充。