Debian 参考手册(版本 2.109)个图叫做根目录(“/”):因此子目录有父目录,并且一条路径显示了一个文件完整的祖先。也有相对路径从其他地 方开始,而不是从根目录。你应该还记得目录“../”指向父目录。这个术语也适用于其他类似目录的结构,如分层 数据结构。 • 对于一个物理设备, 是没有一个特定的目录路径名来对应的组成部分. 这不同于RT-11, CP/M,OpenVMS,MS- DOS,AmigaOS, 以及微软的 Windows,这些系统存 设备的交互,如控制台和远程串口终端都是以统一的方式呈现在“/ dev /”下面。 每个文件、目录、命名管道(一种两个程序间共享数据的方法)或 Debian GNU/Linux 系统上的物理设备都有一个叫做 inode的数据结构,描述了其相关属性,例如拥有它的用户(所有者),它属于的组,最后一次访问时间,等等。把所有 东西都表示在文件系统中的想法是来源于 Unix,现代的 Linux 内核则将这个思路进行了扩展。现在,甚至有关计算机 节)。 Debian 参考手册 15 / 233 1.2.12 procfs 和 sysfs procfs和sysfs两个伪文件系统,分别加载于”/proc” 和”/sys” 之上,将内核中的数据结构暴露给用户空间。或者说, 这些条目是虚拟的,他们打开了深入了解操作系统运行的方便之门。 目录”/proc” 为每个正在运行的进程提供了一个子目录,目录的名字就是进程标识符(PID)。需要读取进程信息的系0 码力 | 261 页 | 1.39 MB | 1 年前3
Linux命令大全搜索工具 v1.8C备份格式时,可使用这项参数检查备份档内的每个文件是否正确无 误; 38. --quiet:不显示复制了多少区块; 39. --sparse:倘若一个文件内含有大量的连续0字节,则将此文件存在稀疏文件; 40. --version:显示版本信息。 将 /etc 下的所有普通文件都备份到 /opt/etc.cpio ,使用以下命令: 1. find /etc –type f | cpio 在<文件>指定目录或文件。 18. --apparent-size 显示表面用量,而并非是磁盘用量;虽然表面用量通常 会小一些,但有时它会因为稀疏文件间的"洞"、内部碎片、非直接引用的块等原因而变大。 19. --files0-from=F 计算文件F中以NUL结尾的文件名对应占用的磁盘空间 SharedMemoryID 有关联的共享内 存段以及数据结构都会在最后一次拆离操作后删除。 2. -M SharedMemoryKey 删除用关键字 SharedMemoryKey 创建的共享内存标识。与其相关的共享内存 段和数据结构段都将在最后一次拆离操作后删除。 3. -q MessageID 删除消息队列标识 MessageID 和与其相关的消息队列和数据结构。 4. -Q MessageKey0 码力 | 1347 页 | 8.79 MB | 1 年前3
CurveFS方案设计增加快照部分 2021-04-13 李小翠、陈威 补充元数据数据结构 2021-04-19 李小翠、吴汉卿、许超杰等 补充文件空间分配,讨论与确认 背景 调研 开源fs 性能对比 可行性分析 方案对比 对比结论 架构设计 卷和文件系统 元数据架构 文件系统快照 方案一:文件/目录级别快照 方案二:文件系统快照 关键点 元数据设计 数据结构 索引设计 文件空间管理 开发计划及安排 背景 近期要能支持mysql所要接口,长期需要支持通用文件接口。 kv 虽然改造简单,短期内对基本功能的支持没有问题,但这个架构不利于 Curve 长期的规划和演进,因此选择通用的 dentry,inode 两层映射的元数据结构。对于 fs© XXX Page 4 of 14 的场景,元数据的量比块存储场景会多很多,长期看元数据节点的设计也是需要满足高可用、高可扩、高可靠的。 因此对元数据节点的要求总结为:高可用、高可扩、高可靠、高性能。 inode 和 dentry 的数据结构( inode 和 dentry 两个结构描述 还是 由一个dentry描述所有信息) inode 和 dentry 的索引设计(btree / skiplist / hashmap ?) 元数据的持久化(以 kv 的方式存入文件?存储 rocksdb ?) 元数据节点的高可用 元数据分片策略(哪些范围的元数据存储在哪些复制组上) 数据结构 在元数据设计上,扁平化元数据(用0 码力 | 14 页 | 619.32 KB | 6 月前3
CurveFS对接S3方案设计修订人 修订内容 2021-05-20 胡遥 初稿 2021-07-20 胡遥 细化write和read流程 整体架构 整体思路 接口和关键数据结构 mds.proto client端数据结构 metaserver.proto space相关数据结构和proto 关键流程 init流程 write流程 read流程 整体架构 S3ClientAdaptor模块:负责将文件数据进行ch ,每个block最大4M,每个block对应s3上一个object。 s3上对象已chunkid_indexblock_version进行命名,元数据则已S3ChunkInfo(见数据结构)的方式存储在inode中。对于文件顺序写场景,文件0~4M的s3对象必然为chunkid_0_0,4M~8M为chunkid_1_0,以此类推, 还有一种情况是文件先写了0~2M,然后在写2M~ 对version进 行++,比如覆盖写了0~4M,则数据会写到chunkid_0_1的对象,则元数据包含了2个S3Chunkinfo{2,0,0,8M}和{2,1,0,4M}。 接口和关键数据结构 common.proto enum FSType { TYPE_VOLUME = 1; TYPE_S3 = 2; } message S3Info { required0 码力 | 11 页 | 145.77 KB | 6 月前3
Curve文件系统元数据持久化方案设计参考 前言 根据之前讨论的结果,元数据节点的架构如下图所示,这里涉及到两部分需要持久化/编码的内容: Raft Log:记录 operator log Raft Snapshot:将内存中的数据结构以特定格式 dump 到文件进行持久化© XXX Page 3 of 12 Raft Log +------+------------+-----+----------------+---------+----------+ vs 自己实现? 结论:从目前元数据持久化的需要来看,更倾向于自己实现,理由如下: redis 目前不支持单独持久化 redis 中的某个 DB (一个 redis 实例可包含多个 DB) 或数据结构,这对于在要使用 multiraft 的场景下,每个 raft 实例需要独立的快照并不合适 如果改造 redis,初步评估了下,其工作量要比自己实现持久化的逻辑要大一些,改造主要是为了让 redis 如果自己实现,只是一个简单的 sava/load 逻辑,比较清晰 redis 中有许多数据结构可供使用,如 (哈希、列表、set、sort_set),但对于目前的需求来说,我们内存数据结构使用的是 C++ STL 中的哈希表(unsorted_map),之后有可能根据需求换成 B+ 树或跳表,但是 redis 中的这些数据结构我们是不需要的 另外,如果 C++ 中的哈希表在后期使用中发现性能不达标的话(特别是在0 码力 | 12 页 | 384.47 KB | 6 月前3
Debian 參考手冊(第 2.109 版)你也可以使用迴圈裝置利用偏移量來跳過 MBR 等,來掛載此類磁碟映像的單個分割槽。但這更加容易出錯。 9.7.4 清理磁碟映像檔案 使用下面的方式,一個磁碟映像檔案”disk.img” 能夠清理掉所有已經刪除的檔案,成為一個乾淨的稀疏映 像”new.img”。 # mkdir old; mkdir new # mount -t auto -o loop disk.img old # dd bs=1 count=0 if=/dev/zero -h disk.img 83M disk.img 對於”disk.img”, 它的檔案大小是 5.0 GiB,而它實際磁碟使用僅僅是 83MiB. 這個差距可能是由於 ext4 裡面有稀疏檔 案. 提示 稀疏檔案的實際磁碟使用會隨著資料的寫入而增加。 迴環裝置 或 裝置對映 裝置上使用類似的操作,在這些裝置按節 9.7.3 掛載後, 你能夠使用 parted(8) 或 fdisk(8) 對0 码力 | 260 页 | 1.41 MB | 1 年前3
CurveFS S3本地缓存盘方案© XXX Page 1 of 9 Curvefs-S3 本地写缓存盘方案© XXX Page 2 of 9 背景 方案设计 主要数据结构定义 方案设计思考 POC验证 背景 当前,s3客户端在写底层存储的时候是直接写入远端对象存储,由于写远端时延相对会较高,所以为了提升性能,引入了写本地缓存盘方案。也即要写底层存储时,先把数据写到本地缓存硬盘,然后再把本地缓存 硬盘中的数据异步上传到远端对象存储。 地写缓存目录中的对应文件。 同时,缓存清理模块会定时检查本地硬盘缓存目录容量情况,如果容量已经达到阈值了,则进行文件的清理工作。 另外,异常管理模块处理客户端挂掉后的文件重新上传问题。 主要数据结构定义 class DiskCacheManagerImpl : public DiskCacheManager{ public: DiskCacheManagerImpl();0 码力 | 9 页 | 150.46 KB | 6 月前3
基于 APM 的智能运维体系在京东物流的落地和实践-付正全ew Relic、云智慧、 OneAPM、AppDyn、Amics 京东物流Jtrace分布式跟踪系统 延展性 应用级透明 低消耗 智能分析 定义了四个具体的设计目标 JTrace数据结构 核心数据结构由Span, Trace, 和 TraceId组成: • Trace: 多个Span的集合; • Span: RPC跟踪的基本单元; • SpanEvent:内部方法调用基本单元 • TraceId:0 码力 | 41 页 | 3.52 MB | 1 年前3
Curve支持S3 数据缓存方案修改者 修改内容 1.0 2021/8/18 胡遥 初稿 背景 整体设计 元数据采用2层索引 对象名设计 读写缓存分离 缓存层级 对外接口 后台刷数据线程 本地磁盘缓存 关键数据结构 详细设计 Write流程 Read流程 ReleaseCache流程 Flush流程 FsSync流程 后台流程 poc测试验证 背景 基于s3的daemon版本基于基本的性能测试发现性能非常差。具体数据如下: 3InfoList。具体细节见 本地磁盘缓存 如果有配置writeBack dev,则会调用diskStroage进行本地磁盘write,最终写到s3则由diskStroage模块决定。 关键数据结构 message S3ChunkInfo { required uint64 chunkId = 1; required uint64 compaction = 2; required0 码力 | 9 页 | 179.72 KB | 6 月前3
openEuler 21.09 技术白皮书consistent buckets mutually reachable 1. 哈希表目录 : 采用哈希表来管理目录项,提高线性查找效率,减少伪共享。 2. 统一的分配器:数据结构使用统一的分配器,这样可以打破不同数据结构之间的界限,使得内存管理更加地简单 与灵活。 3. 采用软更新技术,简化了实现复杂度:软更新 (Soft Update) 是一种轻量级的保证文件系统一致性的技术。 4.0 码力 | 35 页 | 3.72 MB | 1 年前3
共 28 条
- 1
- 2
- 3













