![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
F2FS文件系统
文章平均质量分 72
F2FS文件系统源码与机制详解
清风不及你@
github:wenjieqihust
展开
-
使用QUME搭建ZNS SSD
QEMU从 1.6 版开始支持模拟 NVMe 命名空间。但是仅从QEMU 6.0 版本开始支持模拟分区命名空间。原创 2023-10-15 12:01:13 · 1026 阅读 · 7 评论 -
西数ZN540如何修改sector size
因需要在ZN540上挂载F2FS,故需要两块盘。一块传统SSD一块ZNS SSD。对于ZN540,信息如下由于其扇区大小为4KiB,而自己服务器上没有逻辑扇区为4KiB的盘,例如三星883:所以当用883做传统盘的时候,格式化mkfs.f2fs会报错:因为ZN540不支持分区,如果使用ZN540的传统块接口来挂载则会报空间不足:因此,要么把三星883的逻辑扇区大小改为4KiB,要么把ZN540改为512B。原创 2023-03-01 09:40:47 · 1247 阅读 · 2 评论 -
Android非root模式下访问/proc/fs/f2fs/下文件
Android非root模式下访问/proc/fs/f2fs/XXX/下文件原创 2022-11-02 08:45:22 · 883 阅读 · 1 评论 -
NVMe Zoned Namespaces (ZNS) SSDs
分区命名空间(ZNS) ssd代表了主机软件和基于闪存的ssd之间的一种新的功能划分。ZNS SSD将其容量划分为zone,每个zone可以按任意顺序读取,但必须按顺序写入。这些特性允许ZNS SSD改善其内部数据放置,从而通过更高的写吞吐量、更低的QoS和更大的容量获得更高的性能。...原创 2022-07-27 10:39:38 · 4039 阅读 · 1 评论 -
NVM Express Zoned Namespace Command Set Specification revision 1.1b
NVM Express Zoned Namespace Command Set Specification revision 1.1b原创 2022-07-27 10:35:02 · 1393 阅读 · 0 评论 -
filebench 读写process
define processFilebench进程表示和操作系统进程,包含一个或多个线程。接着,每个Filebench线程代表一个操作系统控制线程,并包含一组flowops。下面的示例说明如何指定流程、线程和流程集合。进程实体对应操作系统进程。define process命令用于实例化给定的进程实体,该进程实体可能生成一个或多个相同的进程副本。每个进程由一个或多个线程组成。而线程则由一组定义线程应该做什么的操作(flowops)组成。线程还可以分配一个内存区域,然后某些flowops将其用作I/O的缓冲原创 2021-12-09 11:24:03 · 924 阅读 · 0 评论 -
filebench工作负载描述语言
== Workload Model Language==Filebench使用综合应用程序模型描述,可用于派生分析模型和重建应用程序的足迹;允许预测和描述,但大大减少了时间和成本。该语言可以准确地表示应用程序的工作负载,从而方便预测、建模和测量系统性能。综合基准测试是通过使用语言中描述的模型在测试系统上生成负载来实现的,其方式类似于实际应用程序在系统上运行时的方式。系统的性能可以在负载产生期间进行测量。对于基准测试,模型是通过动态地重新创建正确数量的进程(或线程)、内存占用和I/O,以及在实际应用程序中看原创 2021-12-09 11:22:44 · 942 阅读 · 0 评论 -
在linux上交叉编译ioctl程序到android
在ubuntu上交叉编译ioctl程序到arm64的android手机上这里NDK用的是r22及以上的版本1.安装NDK从下面的链接下载NDK,并解压https://developer.android.google.cn/ndk/downloads/这里下载了 android-ndk-r22b,解压到/home/tan/960_all/android-ndk-r22b2. 将上一篇博客中的test.c文件放在linux服务器上#include <stdio.h>#include原创 2021-09-06 20:49:56 · 337 阅读 · 0 评论 -
用户态调用F2FS的ioctl以启动FG_GC
19年文章“Reinforcement Learning based Background Segment Cleaning for Log-structured File System on Mobile Devices”中提到可以用ioctl来调用前台段清理,所以记录一下怎么调用。1.对分区/dev/sda4进行格式化,并挂载到/data上。2.因为ioctl是对文件系统中的文件进行的I/O控制,所以需要在文件系统中创建一个文件。这里创建:mkdir /data/test_qwj/190.txt原创 2021-09-06 19:58:28 · 825 阅读 · 0 评论 -
华为hikey960源码编译与烧录(linux-4.19)
HiKey960 开发板是 Google Android 官方提供支持的开发板。Google 有提供为这块开发板编译内核的文档,地址为 https://source.android.com/source/devices#960hikey ,描述了 HiKey960 开发板编译内核的方法。HiKey960 有 3GB RAM 的配置,HiKey960 板子如下图:1.准备工作下载安装NDK交叉编译工具Android NDK https://developer.android.com/ndk/dow原创 2021-06-24 09:19:35 · 1110 阅读 · 1 评论 -
filebench负载测试文件系统性能手册
一、安装filebenchhttps://github.com/filebench/filebench/wikihttps://www.cnblogs.com/xuyaowen/p/filebench.htmlhttps://www.pianshen.com/article/6501303418/二、负载选择https://github.com/filebench/filebench/wiki/Predefined-personalities我主要是选择webserver fileserver原创 2021-05-25 17:05:51 · 943 阅读 · 1 评论 -
TPCC负载测试文件系统性能手册
一、安装TPCChttps://www.hi-linux.com/posts/38534.htmlhttps://imysql.com/2014/10/10/tpcc-mysql-full-user-manual.shtmlhttps://www.cnblogs.com/xuanzhi201111/p/4148434.html二、安装配置MySQL1.下载安装sudo apt install mysql-serversudo apt install libmysql++-dev2.修改用户原创 2021-05-25 16:43:28 · 680 阅读 · 0 评论 -
Ubuntu 18.04上编译Linux内核以及f2fs.ko的使用
一、编译过程https://blog.csdn.net/qq_36290650/article/details/83052315二、开启启动界面选择修改/etc/defults/grub文件注释掉GRUB_TIMEOUT_STYLE修改GRUB_TIMEOUT=5三、重启后选择高级选项后,选择自己的内核四、编译f2fs进入文件夹f2fs-5.4修改Makefile:KERNAL_DIR=/usr/src/linux-5.4PWD=/home/qwj/f2fs-5.4然后编译sud原创 2021-05-25 16:25:02 · 645 阅读 · 0 评论 -
F2FS之总体结构
总体介绍F2FS全称为Flash Friendly File System,是专门为flash设备设计的一个日志结构型文件系统(Log-structured File System, LFS)。相对于传统的日志结构型文件系统,F2FS在wandering tree和gc的高时间开销等问题,有一定的改进和优化。wandering tree问题: 传统的LFS,在文件数据被更新或者写入到日志的末端的时候,指向文件数据保存地址的直接指针指针会被更新(flash设备的异地更新特性),同时指向这个直接指针的间接指转载 2021-04-13 16:33:10 · 978 阅读 · 0 评论 -
F2FS之磁盘NAT和SIT布局及相关函数分析
NAT和SIT数据简介关于NAT和SIT简介部分请参考https://blog.csdn.net/u011649400/article/details/106955060https://blog.csdn.net/u011649400/article/details/102490983SIT的实际磁盘布局SIT区域的实际构图如上所示。以f2fs_sit_block为单位进行存储,共有2blocks个f2fs_sit_block,其中blocks=sit_info->sit_blocks,即原创 2021-04-03 16:19:39 · 1278 阅读 · 0 评论 -
F2FS之write_checkpoint
F2FS需要在特定的时刻将Checkpoint的数据写入到磁盘中。Checkpoint的时机CP是一个开销很大的操作,因此合理选取CP时机,能够很好地提高性能。CP的触发时机有:前台GC(FG_GC) FASTBOOT UMOUNT DISCARD RECOVERY TRIM 周期进行因此F2FS有几个宏表示CP的触发原因:#define CP_UMOUNT 0x00000001#define CP_FASTBOOT 0x00000002#define CP_SYNC 0x00000004原创 2021-04-02 11:32:45 · 1101 阅读 · 0 评论 -
F2FS之读取最新的checkpoint块
在F2FS文件系统中为了读取最新的CP块给超级块对象中的sbi->ckpt,是调用int get_valid_checkpoint(struct f2fs_sb_info *sbi)函数 。int get_valid_checkpoint(struct f2fs_sb_info *sbi){ struct f2fs_checkpoint *cp_block; struct f2fs_super_block *fsb = sbi->raw_super;//磁盘超级块 struct pag原创 2021-04-02 09:47:33 · 454 阅读 · 0 评论