合集-存储
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc alias mc alias list mc alias remove mc alias set mc alias import mc alias export 使用AK/SK创建一个新的别名,命令如下: .
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc tree 使用树的形式,输出桶内的目录和文件。 ./mc tree --files local1/bkt1 控制台的输出,如下: local1/bkt1 └─ a1.txt 使用树的形式,输出本地目录下的目录
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc cat 使用cat命令输出本地硬盘上的文本文件的内容至控制台。 ./mc cat ./local.json 控制台的输出,如下: {"url":"http://192.168.0.109:9000","acc
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc ping 检查指定的MinIO节点的服务是否可用。 不带参数,命令如下: ./mc ping local1 执行时需要手工停止,控制台的输出,如下: 1: http://192.168.0.109:9000:
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc ls 列出本地硬盘上的文件,命令如下: ./mc ls 控制台的输出,如下: [2023-12-14 23:22:48 CST] 4.0KiB config/ [2023-12-14 23:31:03 CST
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc license mc license info mc license register mc license update MinIO当前使用双License,即GNU AGPL v3和商业License。
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc mb MinIO对象锁定 桶版本控制 桶复制 站点复制概述 创建桶bkt1,命令如下: ./mc mb local1/bkt1 控制台的输出,如下: Bucket created successfully `
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc du 用于输出桶内对象的数量和占用的空间。 命令如下: ./mc du local1/bkt1 控制台的输出,如下: 92MiB 2 objects bkt1 增加递归输出的选项--recursive,命令如
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc rb 彻底删除指定的桶。 命令如下: ./mc rb local1/bkt1 控制台的输出,如下: mc: <ERROR> `local1/bkt1` is not empty. Retry this com
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc cp 上传文件至指定桶内,命令如下: ./mc cp ./local.json local1/bkt1/ 控制台的输出,如下: ...jackie/software/minio/local.json: 153
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc mv 将对象在桶之间移动。 在桶内准备好待移动的文件,检查对象,命令如下: ./mc ls local1/bkt1/ 控制台的输出,如下: [2023-12-16 01:18:58 CST] 1.4KiB S
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc rm 删除指定的对象。 准备待删除的对象,查看对象,命令如下: ./mc ls local1/bkt2/ 控制台的输出,如下: [2023-12-16 01:52:54 CST] 153B STANDARD
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc share mc share download mc share upload 生成下载对象的URL,指定对象名称,命令如下: ./mc share download --recursive local1/b
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc stat 获取指定桶或者对象的信息,包含对象的元数据。 指定桶bkt1,查看信息,命令如下: ./mc stat --recursive local1/bkt1 控制台的输出,如下: Name : bkt1/
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc head 查看对象的前N行内容,N默认为10,命令如下: ./mc head local1/bkt1/docker-compose 控制台的输出,如下: #!/bin/bash # # Run docker-
阅读全文
摘要:MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc diff 检查指定桶内对象清单的差异,注意不比较对象内容的差异,命令如下: ./mc diff local1/bkt1 local1/bkt2 控制台的输出,如下: < http://192.168.0.10
阅读全文
摘要:MinIO 是一种高性能、S3 兼容的对象存储。 官方资料 中国官网 代码仓库 安装和部署MinIO 单节点单硬盘部署MinIO 单节点多硬盘部署MinIO 多节点多硬盘部署 站点复制概述 管理现有的MinIO部署 扩展一个分布式MinIO部署 升级部署MinIO 关闭服务器池 从网关或文件系统模式
阅读全文
摘要:社区当前推荐开发者使用Jetty 12.X版本。 依据End of Community Support for Jetty 9.x - June 2022,社区对Jetty 9.x的支持,已在2022年6月1日停止。 依据End of Community Support for Jetty 10 /
阅读全文
摘要:启用https模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=https 命令的输出,如下: INFO : https initialized in ${jetty.base}/start.d/https.ini INFO : Bas
阅读全文
摘要:启用http模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=http 查看http模块的配置文件,执行如下命令: cat $JETTY_BASE/start.d/http.ini 输出如下: # # Module: http # En
阅读全文
摘要:启用server模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=server 命令的输出,如下: INFO : server initialized in ${jetty.base}/start.d/server.ini INFO :
阅读全文
摘要:启用ssl模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=ssl 命令的输出,如下: INFO : ssl initialized in ${jetty.base}/start.d/ssl.ini INFO : Base direct
阅读全文
摘要:Jetty加载参数的优先级: 命令行。 $JETTY_BASE下的文件。 使用--include-jetty-dir指定的目录下的文件。 $JETTY_HOME下的文件。 查看当前的配置参数,执行如下命令: java -jar $JETTY_HOME/start.jar --list-config
阅读全文
摘要:查看模块的列表,执行如下命令: java -jar $JETTY_HOME/start.jar --list-modules 启用模块,比如http模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=http 本命令执行结束后,将在$JE
阅读全文
摘要:Jetty提供的线程池相关的模块,如下: threadpool threadpool-virtual,使用JDK 21提供的virtual threads。 threadpool-virtual-preview,使用JDK 19和JDK 20。 注意上述模块不能共存。 启用threadpool模块后
阅读全文
摘要:console-capture模块用于记录Jetty运行时向标准输出和标准错误写出的信息。 Java的标准输出流,即System.out。 Java的标准错误流,即System.err。 console-capture模块支持在每天晚上切换输出文件,自动清理超出保留期的日志文件。 启用console
阅读全文
摘要:bytebufferpool模块用于配置Jetty的ByteBuffer对象的对象池。 通过对象池的方式来管理ByteBuffer对象的使用和生命周期,期望降低Jetty进程内存的使用,同时降低JVM运行期垃圾回收操作的压力。 启用bytebufferpool模块,执行如下命令: java -jar
阅读全文
摘要:启用http3模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=http3 命令的输出,如下: ALERT: There are enabled module(s) with licenses. The following 2 modu
阅读全文
摘要:启用http2模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=http2 命令的输出,如下: INFO : http2 initialized in ${jetty.base}/start.d/http2.ini INFO : Bas
阅读全文
摘要:启用http-forwarded模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=http-forwarded 命令的输出,如下: INFO : http-forwarded initialized in ${jetty.base}/s
阅读全文
摘要:近来看了一些IBM的存储产品的资料,有一些收获。 依据存储软件和搭配硬件,IBM存储产品的组合,大致分类如下: 自研存储软件,搭配自研专有硬件 自研存储软件,搭配通用服务器硬件,比如IBM Storage Scale 自研存储软件,开放云服务,比如IBM Cloud storage 开源软件,搭配通
阅读全文
摘要:本文标题中提到的文件语义,指的是POSIX规范。 S3指的是AWS提供的对象存储服务以及相关接口。为方便描述,下文中以对象语义替代S3接口语义。 文件语义和对象语义存在比较多的差异。 对象语义不支持文件语义的部分特性,比如: 目录的操作,创建、删除、修改名称。 文件的部分操作,追加写、随机写、修改名
阅读全文
摘要:本文是在阅读Introduction to Lustre* Architecture的如下章节时的笔记。 Lustre – Fast, Scalable Storage for HPC Lustre Scalable Storage Lustre Building Blocks Lustre Sto
阅读全文
摘要:本文是在阅读Introduction to Lustre* Architecture的Lustre File System – Clients时的笔记。 Lustre客户端部署在客户的计算节点上,工作时不占用本地的硬盘。 不使用本地硬盘作为缓存或者后备空间。 对存储系统的访问均通过网络。 Lustr
阅读全文
摘要:本文是在阅读Introduction to Lustre* Architecture的Lustre SMB Gateway System Architecture时的笔记。 Lustre只支持Linux系统,但借助Samba可以支持SMB协议,进而对Windows主机提供文件访问能力。 参考资料 W
阅读全文
摘要:一切都是机缘巧合。 转岗前参与的项目出于各种原因无法继续,在原部门已无立足之处,于是阴差阳错之下,转岗加入了分布式存储的开发团队。按照领导的安排,在原服务SE的指导下,一起分担对象服务的方案设计和业务支撑工作。现产品的对象服务,对客户宣称兼容AWS S3,从产品资料看,已具备基本能力。 但现实开了一
阅读全文
摘要:为什么需要分布式存储?这是个好问题,如下是我本人的部分理解。 分布式存储,相对应的是集中式存储。 作为存储系统,对客户应用而言,可以提供: 结构化业务,即块服务。 非结构业务,即如下: 文件,比如NFS、CIFS/SMB等。 对象,比如兼容AWS S3、MS Azure Blob存储等。 大数据,比
阅读全文
摘要:本文中讨论的对象存储服务及接口,主要和AWS S3对标。 AWS S3提供的对象存储业务,与传统的POSIX规范相比,舍弃了很多特性,比如: 文件类型 硬链接 软链接 目录 文件相关的操作 追加写 随机写 截断 修改名称 目录相关的操作 创建目录 修改名称 删除目录 元数据 时间 crtime即创建
阅读全文
摘要:依据AWS S3的Amazon S3 REST API Introduction,当前提供的对象列举接口,如下: ListObjectVersions ListObjects ListObjectsV2 上述接口仅支持使用前缀、对象版本作为检索条件,在业务交付时使用非常不方便。 为提供类似Every
阅读全文
摘要:AWS S3提供了事件通知的能力,即在客户应用访问对象存储时,对象存储服务可提供通知服务,支撑客户的特定应用场景,比如业务审计、计费等。 相关能力可参考官方文档。 相关API,如下: PutBucketNotification GetBucketNotification PutBucketNotif
阅读全文
摘要:AWS S3没有定义图像处理类的接口,但在官方文档中提供了文章使用 Amazon S3 对象 Lambda 在检索图像时动态添加水印,借助Amazon S3 Object Lambda由开发者自行实现相关的能力。 技术方案 作为兼容AWS S3能力的对象存储服务,交付图像处理特性时,关注点有: 实现
阅读全文
摘要:AWS S3提供了Lambda服务,详见Amazon S3 Object Lambda。 技术方案 作为兼容AWS S3能力的对象存储服务,交付Lambda特性时,关注点有: 实现方式 SDK 独立进程 部署位置 SDK,与客户应用集成在同一个进程内。 独立进程 与客户应用同机部署。 独立部署,占用
阅读全文
摘要:官方资料 官网 Getting Started With Lustre Operations Manual wiki Main Page Understanding Lustre Internals Second Edition Introduction to Lustre* Architectur
阅读全文
摘要:类似文件的追加写操作,在对象的末尾增加新的数据内容。 本文有如下假定: 对象存储服务基于文件语义实现。 使用PUT方式上传的对象,内部使用一个文件和对应的元数据来承载。 使用多段方式上传的对象,内部使用多个段文件、元数据来承载,其中每个段文件可管理独有的元数据。 下面讨论追加写操作时的方案和注意事项
阅读全文
摘要:如下是官方文档中针对元数据的说明。 After you upload the object, you cannot modify object metadata. The only way to modify object metadata is to make a copy of the obje
阅读全文
摘要:依据AWS S3,没有定义修改数据的操作,修改数据时,均需要重新上传对象的数据和元数据。 本文有如下假定: 对象存储服务基于文件语义实现。 接口定义 依据前述,业界主流对象存储服务比如AWS S3并未定义修改对象数据的操作,而国内的各家公有云对象存储服务,提供了对象的修改对象数据的操作。 国内的公有
阅读全文
摘要:依据AWS S3,没有定义重命名对象的操作。 本文有如下假定: 对象存储服务基于文件语义实现。 接口定义 依据前述,业界主流对象存储服务比如AWS S3并未定义重命名对象的操作,而国内的各家公有云对象存储服务,提供了对象的重命名操作。 国内的公有云对象存储服务,相关操作的文档的链接(排名不分先后),
阅读全文
摘要:实现思路 加密特性的方案,涉及如下设计点: 密钥的用途 加密的位置 加密的算法 加密密钥的使用 加密密钥的管理 密钥的用途 密钥的用途分为管理密钥和数据密钥。 管理密钥用于加密数据密钥,需要定期更换,更换成本低;假如管理密钥丢失,则导致数据密钥无法解密,从而丢失数据。 数据密钥用于加密数据,需要妥善
阅读全文
摘要:为充分提升基础设施相关预算的投资效率,数据安全性,客户的数据可能分布在多套存储中,按照价格、业务场景等,可以划分为如下形式: 本地高端存储,支撑生产类业务 本地低端存储,支撑归档类业务、分析型业务 云端高端存储,支撑生产类业务、分析型业务 云端低端存储,支撑归档类业务 依据不同的规则从不同的存储设备
阅读全文
摘要:使用场景有: 上传对象后,如何确定对象存储收到的数据和客户端本地的数据是否一致。 下载对象后,如何确定本地收到的数据和对象存储保存的数据是否一致。 AWS S3 Checking object integrity 实现完整性校验时,AWS S3提供的算法包括CRC32、CRC32C、SHA-1、SH
阅读全文
摘要:AWS S3 官方文档 Filtering and retrieving data using Amazon S3 Select SQL reference for Amazon S3 Select SELECT command Data types Operators Reserved keywo
阅读全文
摘要:AWS S3提供了删除单个对象和批量删除对象的接口,如下: DeleteObject 请求消息的格式,如下: DELETE /Key+?versionId=VersionId HTTP/1.1 Host: Bucket.s3.amazonaws.com x-amz-mfa: MFA x-amz-re
阅读全文
摘要:在对象存储服务中集成压缩算法,可以有效节省最终占用的空间,提升介质的利用效率,提高存储的收益。 选择压缩算法时,通常综合考虑对象的格式、访问频率、访问时延、存储服务的负载、存储服务器的硬件规格、存储介质的规格等。 对于高压缩比的文本类数据,通常建议在客户端应用侧完成压缩,这样除节省存储空间,还节省了
阅读全文