Skip to content

Instantly share code, notes, and snippets.

@prtitrz
Created March 15, 2012 11:35
Show Gist options
  • Save prtitrz/2043786 to your computer and use it in GitHub Desktop.
Save prtitrz/2043786 to your computer and use it in GitHub Desktop.
NCCloud1.0代码浅析

#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空间存储文件
      
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment