fs文件存储
Ⅰ Kubernetes 基于GlusterFS的动态存储管理StorageClass
最近由于需要部署有状态服务,没有云环境的支持,不能很好的通过cloud provider调用云磁盘EBS,所以在node节点部署了一套glusterFS分布式文件存储系统,用来提供非结构化数据存储,存储图片,大文件等等.
Kubernetes中使用GlusterFS作为持久化存储,要提供storageClass使用需要依赖Heketi工具。Heketi是一个具有resetful接口的glusterfs管理程序,作为kubernetes的Storage存储的external provisioner。 “Heketi提供了一个RESTful管理界面,可用于管理GlusterFS卷的生命周期。借助Heketi,像OpenStack Manila,Kubernetes和OpenShift这样的云服务可以动态地配置GlusterFS卷和任何支持的持久性类型。Heketi将自动确定整个集群的brick位置,确保将brick及其副本放置在不同的故障域中。Heketi还支持任意数量的GlusterFS集群,允许云服务提供网络文件存储,而不受限于单个GlusterFS集群。
Heketi是由golang编写,直接静态编译运行二进制即可也可以通过yum安装以及docker部署,主要会产生db文件存储cluster、node、device、volume等信息。
我们glusterFS部署在k8s集群外,所以heketi通过ssh管理glusterFS。需要创建免秘钥登陆到所有glusterFS节点。
参考 https://github.com/heketi/heketi/blob/master/client/cli/go/topology-sample.json
注意:
由于我们开启了heketi认证,所以每次执行heketi-cli操作时,都需要带上一堆的认证字段,比较麻烦,我在这里创建一个别名来避免相关操作:
注意: 如果heketi 运行账号为非root,需要保证有sudo权限。
机器只是作为gluster的运行单元,volume是基于device创建的。同时需要特别说明的是,目前heketi仅支持使用裸分区或裸磁盘(未格式化)添加为device,不支持文件系统。
以上ad-hoc命令均可通过配置文件创建然后导入:
创建:
这里仅仅是做一个测试,实际使用中,会由kubernetes自动创建pv.
创建一个大小为3G,副本为2的volume
添加storageclass-glusterfs.yaml文件,内容如下:
注意:
更详细的用法参考: https://kubernetes.io/docs/concepts/storage/storage-classes/#glusterfs
我们可以看到RECLAIM POLICY: Retain ,经过测试
kubernetes pv和gluster volume不一致时,可使用heketi来统一管理volume.此文档heketi和glusterfs都在kubernetes集群外部署。对于支持AWS EBS的磁盘,可通过EBS storageClass方式将glusterFS heketi部署在容器中管理.参考 https://github.com/gluster/gluster-kubernetes
Ⅱ 存储服务分类:块存储、文件存储、对象存储
1、关于文件存储
文件储存最具代表性的NAS,对于大多数用户来说,NAS就类似于一个共享文件夹,用户可以直接将数据放在NAS上,用于传输。同时,NAS是通过网络达成储存的目的,依附于TCP/IP网络协议栈,这也就是NAS存储于上文的DAS和SAN存储最大的不同点。
2、关于块储存
块储存我们可以将其看成裸盘,但是裸盘是不能被系统访问,不过,可以格式化为你指定的文件系统Ext3,Ext4,NTFS,FAT32等形式,这样便可以被系统访问了。常见的块储存为DAS、FC-SAN、IP-SAN三种类型。同时,块储存也是哦我们最常见的一种储存模式,比如pc硬盘、服务器硬盘。
3、关于对象储存
这种储存方式还是比较新的,常见的对象储存开源实现有Ceph的RADOS、Openstack的swift、AWS s3等;常见分布式文件系统有lustre、glusterfs、HDFS等。对象储存可以将其看作一家高级餐厅代客停车,客户需要车,你将钥匙给到别人,换来一张收据。
总体来说,三种储存方式,可从表面和本质着手,对象储存支持restful接口,块存储的用户是可以读写块设备的软件系统,例如传统的文件系统、数据库;文件存储的用户是自然人;对象存储的用户则是其它计算机软件。
Ⅲ 微信小程序fs.readfilesync如何使用云存储文件路
微信小程序fs.readfilesync使用云存储文件路打开云开发点击存储管理,到存储管理这里可以上传文件。点击上传文件可以从本地把自己的文件上传到这里,值得注意的是在自己上传文件的时候尽量取好名字,这样会减少自己操作的负担。要实现把这里的文件存储到数据库里。
Ⅳ 对象存储、文件存储和块存储的区别是什么
对象存储、文件存储和块存储的区别如下:
1、速度不同
块存储:低延迟(10ms),热点突出;
文件存储:不同技术各有不同;
对象存储:100ms-1s,冷数据;
2、可分步性不同
块存储:异地不现实;
文件存储:可分布式,但有瓶颈;
对象存储:分步并发能力高;
3、文件大小不同
块存储:大小都可以,热点突出;
文件存储:适合大文件;
对象存储:适合各种大小;
4、接口不同
块存储:Driver,kernel mole ;
文件存储:POSIX;
对象存储:Restful API ;
5、典型技术不同
块存储:SAN;
文件存储: HDFS,GFS;
对象存储:Swift,Amazon S3;
6、适合场景不同
块存储:银行;
文件存储:数据中心;
对象存储:网络媒体文件存储。
(4)fs文件存储扩展阅读:
对象存储、文件存储和块存储的联系:
通常来讲,磁盘阵列都是基于Block块的存储,而所有的NAS产品都是文件级存储。
1. 块存储:DAS SAN
a) DAS(Direct Attach Storage): 是直接连接于主机服务器的一种存储方式,每台服务器有独立的存储设备,每台主机服务器的存储设备无法互通,需要跨主机存取资料室,必须经过相对复杂的设定,若主机分属不同的操作系统,则更复杂。
应用:单一网络环境下且数据交换量不大,性能要求不高的环境,技术实现较早。
b) SAN(Storage Area Network): 是一种高速(光纤)网络联接专业主机服务器的一种存储方式,此系统会位于主机群的后端,它使用高速I/O联接方式,如:SCSI,ESCON及Fibre-Channels.特点是,代价高、性能好。但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。
应用:对网速要求高、对数据可靠性和安全性要求高、对数据共享的性能要求高的应用环境中。
2. 文件存储
通常NAS产品都是文件级存储。
NAS(Network Attached Storage):是一套网络存储设备,通常直接连在网络上并提供资料存取服务,一套NAS储存设备就如同一个提供数据文件服务的系统,特点是性价比高。
它采用NFS或CIFS命令集访问数据,以文件为传输协议,可扩展性好、价格便宜、用户易管理。目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。
3. 对象存储:
总体上讲,对象存储同时兼具SAN高级直接访问磁盘特点及NAS的分布式共享特点。
核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(OSD),构建存储系统,每个对象存储设备具备一定的职能,能够自动管理其上的数据分布。
对象储存结构组成部分(对象、对象存储设备、元数据服务器、对象存储系统的客户端)