#NCCloud1.0代码浅析
##工作流程 ###上传流程 cloudncfs.py flush() -> workflow.py uploadFile() -> coding.py encodeFile() -> storage.py uploadFileAndMetadata() ###下载流程 cloudncfs.py __init__() -> workflow.py downloadFile() -> storage.py storage.downloadFile() -> coding.py decodeFile()
##模块功能
- clean.py
负责卸载文件系统后的清理工作,删除mirrordir,chunkdir,metadatadir的所有内容
- cloudnfs.py
利用fuse提供的接口实现文件系统,决定了文件系统的实际运行方式
- coding.py
由于系统提供多种编译码方式,该文件提供了一个统一的上层接口来接受调用
- common.py
负责读取配置文件以决定系统的初始状态
- info.py
显示系统的各项信息,如文件或节点的各项信息
- quickstart.py
依靠用户的输入快速生成配置文件
- rebuild.py
同coding.py,提供一个统一的上层接口来接受恢复节点或恢复文件的调用
- storage.py
存储控制模块,依据用户配置的不同决定如何存放文件及元数据
- tester.py
单元测试模块,测试系统的工作情况
- workflow.py
上传文件,下载文件,恢复文件的工作流程
- zk.py
zookeeper相关,由于不使用该模块,故跳过= =
-
coding目录
-
clibfmsr目录
> fmsr编码的c语言实现(不用python是从效率目的考虑)
-
codingutil.py
> 利用zfec提供的接口实现的编译码功能
-
coeffvector.py
> coeffvector容器类
-
embr.py embrutil.py
> E-MBR编译码模块
-
finitefield.py fmsrtwo.py fmsrutil.py
> fmsr编码相关
-
parityrs.py
> RS编码
-
replication.py
> replication存放(raid-1)
-
striping.py
> striping存放(raid-0)
-
-
storages目录
-
libazure目录 azure.py
> 利用azure云空间存储文件
-
amazonS3.py
> 利用amazonS3云空间存储文件
-
local.py
> 利用本地空间存储文件
-
rackspace.py
> 利用rackspace空间存储文件
-
storageutil.py
> 从云端向镜像目录同步文件
-
swift.py
> 利用OpenStack Swift空间存储文件
-