0x00 背景 在上一篇云硬盘性能分析的教程中,为大家介绍了如何评测云硬盘的读写性能。但是,我们使用硬盘,从来不是直接读写裸设备,而是通过文件系统来管理和访问硬盘上地文件。 本文中,我们将一起探索Linux中主流的三个文件系统——Ext4、XFS以及Btrfs——的功能特点,并基于腾讯云高性能云硬盘,做一个初步的性能对比。 不过在云硬盘场景下,以上各中工作其实都已经完全托管实现了,腾讯云的CBS云硬盘产品,通过多副本的机制保障了数据的可靠性、可用性等问题,同时并发性能也得到特别的优化。 0x04 云盘上各文件系统性能对比 实验环境选择x86_64体系下的Debian 10 (Buster)稳定版的OS,每种文件系统均为1T的高性能云硬盘。 性能测试总结,在腾讯云的CBS云硬盘上,对于以上三种成熟稳定的文件系统,不论选用其中哪一种,性能都比较优异,且差异相对不大。
Fast.io可以自动将云盘文件同步到Fast.io的云中,并使用CloudFlare 和 Akamai进行CDN加速,同时提供直链下载,和Oneindex这类程序相似,不过Fast.io支持多种云盘 ,只需要将您的文件复制或上传到这个目录,会自动同步到Fast.io的云存储中。 一些限制 Fast.io免费版支持5个站点,单个文件最大限制500Mb,每个月100Gb流量,收费版还支持密码保护和更大的单文件,套餐价格如下图。 总结 相比Oneindex这类网盘直链程序,Fast.io支持的网盘更加丰富,且无需自行搭建,但Fast.io免费版会受到单文件大小和流量方面的限制,总之选择自己最适合的即可。 使用Fast.io可以很方便的让云盘提供直连下载,而且还可以拯救被墙的网盘,Fast.io还可以设置自定义域名等,有兴趣的同学可以注册后进一步摸索。
代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!
创建文件的副本,并使用补丁程序语义应用所有请求的更新。 立即尝试。 域管理员可以选择默认使所有上载的文件对域可见;此参数绕过该请求的行为。权限仍然从父文件夹继承。 这仅适用于Google云端硬盘中具有二进制内容的文件。该文件只能保留200个修订版本。如果达到限制,请尝试删除固定的修订。 可写的idstring文件的ID。可写的mimeTypestring文件的MIME类型。 如果未提供任何值,则Google云端硬盘会尝试从上传的内容中自动检测适当的值。 可写的namestring文件名。这在文件夹中不一定是唯一的。请注意,对于不可变项,例如共享驱动器的顶层文件夹,“我的驱动器”根文件夹和“应用程序数据”文件夹,名称是恒定的。
云盘安装和配置 四、云盘使用「分享书籍」 1. 上传PDF书籍 2. 设置外链 五、总结 一、前言 本篇文章只介绍如何自建云盘,不剐蹭任何云服务。 但在做这件事的时候,经常遇到分享的链接过一会就失效,同时预览效果也不是很好,不能随开随读。所以就萌生了,构建自己的云盘。 小傅哥,那个不是简单的男人,一直比较能折腾!从折腾中不断的触及到新知识领域! 接下来就反复更换关键词搜索到了;「可道云」 - kodcloud.com。这是一款基于PHP开发的私有云存储&协同办公服务,同时可以在本地下载软件管理自建的云盘服务。 可以分享文件成链接,支持设置隐私级别,与其他云盘功能一致。且对浏览PDF效果很理想,可以在线阅读。 另外,有免费版!免费版就是你不要通过代码去改一些显示内容,否则会提示升级到付费版本。 「好!」 1.2 上传文件 配置好路径后,就可以打开FTP服务。在工程中点击上传文件即可。 ? 2. 云盘安装和配置 安装过程非常简单,只要打开我们的云虚拟机配置的域名,进行访问即可。
在公有云上,有很多的存储产品,让我们眼花缭乱,今天我们来看下弹性文件服务SFS。初一看,与我们在私有云经常使用的NAS有些神似,又与公有云上的云硬盘有些类似。 image.png 三、总结 1、SFS文件系统只能在云内部使用,不能与互联网直接连接。 ping sfs文件系统,是100.125.85.155的内网地址。 SFS只能用于在云上的云主机之间内部通信。 image.png 2、SFS文件系统具有文件系统,不需要格式化。 我们用mount命令挂载上sfs文件系统后,不需要格式化该空间,即可使用。 3、SFS文件系统便于进行多台主机的文件共享。 多台云主机挂同一块云硬盘进行数据读写,存在数据写入冲突的问题,必须有文件集群系统的支持,如Oracle RAC。而SFS文件系统不存在这个问题。 4、SFS文件系统支持扩容、缩容。 image.png 5、SFS文件系统比云硬盘更贵。 image.png
在公有云上,有很多的存储产品,让我们眼花缭乱,今天我们来看下弹性文件服务SFS。初一看,与我们在私有云经常使用的NAS有些神似,又与公有云上的云硬盘有些类似。 接下来,进行实际挂载,通过mount命令,我们将SFS文件系统成功与/sfs目录进行了挂载。 ? 三、总结 1、SFS文件系统只能在云内部使用,不能与互联网直接连接。 ping sfs文件系统,是100.125.85.155的内网地址。SFS只能用于在云上的云主机之间内部通信。 ? 2、SFS文件系统具有文件系统,不需要格式化。 多台云主机挂同一块云硬盘进行数据读写,存在数据写入冲突的问题,必须有文件集群系统的支持,如Oracle RAC。而SFS文件系统不存在这个问题。 4、SFS文件系统支持扩容、缩容。 ? 5、SFS文件系统比云硬盘更贵。
因为蓝眼云盘也是采用go语言+gorm编写的,所以参考起来稍微轻松一点。主要还是了解如何通过一段提取码就能取到文件的访问权。 生成一个分享文件uuid和提取码code。 服务端接受选择的文件或文件夹id,随机生成一个share uuid和提取码code,返回给页面:服务端写入数据表share和bridge,前者存share uuid和分享者id,及过期时间expiretime 后者存储share uuid和对应的文件id,一对多。 ? 用户通过这个链接地址,浏览器请求服务端,服务端判断用户有无登录——如果登录,再判断这个分享是不是这个登录用户创建。 上面的逻辑相当于通过认证后,提供给页面的文件或文件列表。 那么下载也差不多是这个逻辑,也是要判断code。 this.matterService.DownloadZip(writer, request, []*Matter{matter}) } return nil } 也是先要checkshare,然后再去bridge数据表里取出文件或文件的
FileProvider构建了一个抽象文件系统,作为它的两个具体实现,PhysicalFileProvider和EmbeddedFileProvider则分别为我们构建了一个物理文件系统和程序集内嵌文件系统 总的来说,它们针对的都是“本地”文件,接下来我们通过自定义FileProvider构建一个“远程”文件系统,我们可以将它视为一个只读的“云盘”。 真实的文件保存在文件服务器上,客户端可以通过公布出来的Web API得到指定路径所在的目录结构,以及目录和文件描述信息,甚至可以读取指定文件的内容。 文件服务器中的每一个目录都对应着一个URL,客户端可以指定相应的URL将某一个目录作为本地文件系统的根。 如下所示的调试断言表明利用HttpFileProvider读取的文件就是这个物理文件。
之前想做的一个功能是读取U盘中的文件到系统磁盘目录下,今天抽空把简版功能实现了。那会儿一直搜索的Qt如何识别U盘,最终得到的结果是Qt检测U盘插拔,发现并不是我想要的。 在开始前先看下Qt帮助文档的QStorageInfo类。 提供有关当前安装的存储和驱动器的信息 允许检索有关卷的空间,挂载点,标签和文件系统名称等信息。 在读取U盘文件时,主要用到的是获取路径的功能。有了该功能,再结合QFile::copy() 文件,就可以实现复制U盘内文件的功能了。O的K,上码。 如果除去文件的来源是从U盘,这就像是一个复制文件的功能。 遍历所有磁盘,由于我只想要U盘中的文件,而U盘中的所属的磁盘是media。 之后是获取路径添加文件的名称,再结合QFile的 Copy功能,就这样。 下面是测试文件的目录以及结果截图。 U盘中的测试文件。 ? 磁盘目录。 ? Qt打印结果。 ? 复制文件结果。 ?
IPFS 是一个免费的开源项目,是一个分布式文件系统,旨在将所有计算设备与相同的文件系统连接起来,我们可以通过它,在全网分发你的任何资源!无来源,无审核,无限流量,无限空间! 文件保存周期应该是大概6个月,如果个月内文件无人访问,文件将在全球分布的IPFS保留你数据的那台服务器中,删除文件,相反,如果文件一直不定期访问,文件就会可以更久的保存。
超级块对象代表一个己安装的文件系统,存储该文件系统的有关信息,比如文件系统的类型、大小、状态等。对基于磁盘的文件系统,这类对象通常存放在磁盘上的特定扇区。 对于并非基于磁盘的文件系统(比如基于内存的文件系统sysfs),它们会现场创建超级块对象并将其保存在内存中。 (2)索引节点(struct inode)。 第1步,读取ext4_super_block对象,此时并不知道文件系统的block大小,也不知道它起始于第几个block,只知道它起始于磁盘的第1024字节(前1024字节存放x86启动信息等)。 最后将超级快的变更内容写回到磁盘上,更新挂载计数器和上一次挂载的日期。 这样就将磁盘挂载到linux的VFS文件文件系统中了。 恢复删除的文件并不神秘 存储介质上的数据可以分为两部分:表征文件的数据(可以称为元数据,metadata)和文件的内容。不仅仅ext4文件系统如此,多数基于磁盘的文件系统都离不开这两部分。
索引节点:简称为 inode,用来记录文件的元数据,比如 inode 编号、文件大小、访问权限、修改日期、数据的位置等。索引节点和文件一一对应,它跟文件内容一样,都会被持久化存储到磁盘中。 所以记住,索引节点同样占用磁盘空间。 数据块:简称为block,普通文件用来记录文件的数据。 以下为inode和数据块的分配策略: 多块分配可以减少磁盘碎片。当文件初次创建的时候,块分配器预测性地分配8KB的磁盘空间给文件。当文件关闭的时候,未使用的空间当然也就释放了。 但是如果推测是正确的,那么文件数据将写到一个多个块的extent中。 延迟分配。当一个文件需要更多的数据块引起写操作时,文件系统推迟决定新数据在磁盘上的存放位置,直到脏的buffer写到磁盘为止。 尽量保持文件的数据块与其inode在同一个块组中。可以减少磁盘寻道时间. 尽量保持同一个目录中的所有inodes与目录位于同一个块组中。这样的假设前提是一个目录中的文件是相关的。
但是,如果一个文件比较大,inode的块号不足以标识所有的数据块,就会使用间接块。文件系统会在硬盘上分配一个数据块,不存储文件数据,专门用来存储块号。该块被称为间接块。inode的长度是固定的。 目录与文件名的存储格式 目录下文件比较少的情况下:目录本身也是个文件,也有 inode。inode 里面也是指向一些块。 和普通文件不同的是,普通文件的块里面保存的是文件数据,而目录文件的块里面保存的是目录里面一项一项的文件信息。这些信息我们称为 ext4_dir_entry。 为了表示图中上半部分的那个简单的树形结构,在文件系统上的布局就像图的下半部分一样。无论是文件夹还是文件,都有一个 inode。 对于较小的分区来说速度还好,但是对于一个超大的磁盘,速度是极慢极慢的。例如将一个几十T的磁盘阵列格式化为ext4文件系统,可能你会因此而失去一切耐心。
在操作系统中,任何东西都可以看作是文件,文件是操作系统逻辑组织的基本单元。对于Unix和Linux文件系统而言,文件系统层次标准(FHS)是其组织规范的主要参考。 对文件目录结构稍有了解的人都知道,文件系统通常由根目录(/)出发,不断延伸出一层一层的子目录。 在使用fdisk之前,首先须明确所要处理的硬盘。例如:如果要处理第一IDE硬盘,可以输入:#fdisk /dev/hda。 使用LVM可以很方便地实现磁盘分区的扩容,一个文件系统甚至可以跨越多个硬盘。 下面简要介绍一下创建LVM分区的过程: 1) 添加新的硬盘 2) 创建新的分区,将一个或多个分区指定为LVM文件系统类型(可使用fdisk工具) 3) 备份/home目录,将其分区指定为LVM文件系统类型
C盘隐藏文件AppData文件占用空间83.7G? 今天无意中看到我的C盘居然只有21.8G了,我所有的软件都是安装在E盘,为什么C盘还是无缘无故的少了这么多空间呢, ? 经过一个一个文件夹的寻找,终于在C盘的用户下面找到了一个名为AppData的隐藏文件 ? 那真是不看不知道,一看吓一跳,这个文件居然占用空间83.7G ? 后来我以为电脑中毒了,然后百度了一下这个文件夹是干嘛用的 ? 可以看到,这个文件夹里面全是存放应用的数据和缓存文件,删了他就罢工,不删空间占用太大,真是吃一堑长一智 同行们,以后应用程序光安装在其他盘还不行,对于我们要用的特别占空间的工具(oracle,vs201
磁盘的物理组成 圆形的盘片, 用于记录数据 扇区, 最小的物理储存单位,有512Bytes和4K两种格式 扇区组成的圆为柱面 机械臂与机械臂上的磁头, 用于读写盘片上的数据 主轴马达, 转动盘片, 让磁头在盘片上读写数据 索引式文件系统中 一些概念 1. superblock: 记录该文件系统的整体信息, 包括inode/block的总量,使用量,剩余量, 以及文件系统的格式等相关信息 2. inode: 记录文件的属性 , 一个文件会占用一个inode, inode中记录文件数据所在的block 3. block: 实际记录的文件内容 链式文件系统(如FAT) 每个block号码记录在前一个block号码中
查看文件 列出当前目录所有文件的大小 ls -alh 过滤当前目录下大于10M的文件 find ./ -type f -size +10M -print0 | xargs -0 ls -lh | sort -nr 查看文件夹 当前目录的大小 du -sh 当前目录的子目录大小 du -sh * 递归查询当前目录所有文件夹大小 du -ah 磁盘占用 df -lh
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。CFS 可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云 CFS 的管理界面简单、易使用,可实现对现有应用的无缝集;按实际用量付费,为您节约成本,简化 IT 运维工作。
扫码关注云+社区
领取腾讯云代金券