这是我这是我参与「第五届青训营」伴学笔记活动的第十五天,今天基本了解了单机文件系统和分布式文件系统。
本地文件系统
1.linux包括index Node和Directory Entry两种数据结构。
2.接口繁多有sysfs,ext,rootfs等,都遵循VFS统一。
3.index node:文件标识,包括元数据,个数在格式化文件系统就被固定,是常数
4.dentry:全内存数据结构,不会持久化存储在磁盘上,记录文件名,inode指针和层级关系。与inode成多对一的关系。
key value存储
1.用法:put存, get取
2.lsm-tree:看重写入,分为内存和磁盘,遵循顺序写入,读完memtabel会读到不可变memable时会写入level0 sstable,装满后,然后依次下滑至level1,2....。并将各层keyvalue数据再合并新版本回应get请求。
HDFS
1.支持超大文件采用一次写入,多次读取,流式访问。、
2.分布式更加注重数据的吞吐量更需要读取整个数据集,写入后一般不需要再修改。
3.将数据切分成数据块均匀放在运行datanode守护进程的节点中 在主节点完成IO操作。
4.nameNODE 也叫元数据节点维护整个文件系统的目录树,命名空间,文件系统镜像存储元信息,每次启动加载镜像到内存中。还有是空间镜像的编辑日志保存修改信息。
5.secondarynode定期合并镜像和镜像日志,一般单独部署到一台机器上文件系统镜像不会及时更新需要定期合并。
6.datanode以数据块的形式在linux文件系统上。
7.高容错性
ceph
1.特点:ceph基于对象开发,具备多接口,采用crush算法。
2.主备复制:先写主节点,链状多副本复制。
3.数据分布模型:复制多个文件副本进行冗余存储,进行决策放在哪几台机器上。