PolarDB File System,简称PFS或PolarFS,是由阿里云自主研发的高性能类POSIX的用户态分布式文件系统,服务于阿里云数据库PolarDB产品。
PFS(PostgreSQL版)是以后台进程(pfsdaemon)的方式提供服务,目前完成基于AliOS以及CentOS 7.5的开发和测试工作,其他Linux版本理论上也可以搭建。
以CentOS 7.5为例,构建工程需要完成以下软件安装:
- CMake:需要2.8及以上版本。
- gcc&g++:需要4.8.5及以上版本。
- zlog:需要1.2.12及以上版本。
- libaio-devel
CMake、gcc&g++、libaio-devel的安装建议使用yum或apt-get。
zlog需要下载源码后执行 make && sudo make install
安装,而且由于zlog安装的目录在/usr/local/lib
,如果运行时找不到动态库,可以通过ldconfig
配置进行添加。
本项目也提供rpm包安装,如果使用rpm包安装,跳过编译和安装这2个步骤。
依赖项准备好后,进入代码根目录,执行脚本进行编译:
./autobuild.sh
安装pfsdaemon需要root权限。 在完成编译工作后,使用安装脚本 install.sh 进行自动化安装:
sudo ./install.sh
lsblk
选择需要格式化的块设备名,例如 nvme1n1,运行pfs格式化命令:
sudo pfs -C disk mkfs nvme1n1
sudo /usr/local/polarstore/pfsd/bin/start_pfsd.sh -p nvme1n1
其中,"-p 设备名"必须设置,nvme1n1指代设备名。 其他可选启动参数如下:
-f (not daemon mode)
-w #nworkers
-c log_config_file
-b (if bind cpuset)
-e db ins id
-a shm directory
-i #inode_list_size
sudo /usr/local/polarstore/pfsd/bin/stop_pfsd.sh nvme1n1
nvme1n1指代设备名。
停止pfsdaemon后,清理运行时产生的临时文件、日志、共享内存文件:
sudo /usr/local/polarstore/pfsd/bin/clean_pfsd.sh nvme1n1
nvme1n1指代设备名。
参照PFS工具使用说明,进行常见的文件操作,验证文件系统是否正确安装。 例如使用如下命令,可以查看创建的新文件 hello.txt:
sudo pfs -C disk touch /nvme1n1/hello.txt
sudo pfs -C disk ls /nvme1n1/
nvme1n1指代设备名。
卸载pfsdaemon需要root权限。
sudo /usr/local/polarstore/pfsd/bin/stop_pfsd.sh nvme1n1
sudo ./uninstall.sh
在docs目录下,包括内容如下:
- PFS_Tools-CN.md:PFS工具的命令使用手册。
PFS基于Apache License 2.0协议开源。
- 《PolarFS: An Ultra-low Latency and Failure Resilient Distributed File System for Shared Storage Cloud Database》VLDB2018
- 《POLARDB Meets Computational Storage: Efficiently Support Analytical Workloads in Cloud-Native Relational Database》FAST2020
- 产品官网:阿里云原生关系型数据库PolarDB
- 使用钉钉扫描如下二维码,加入钉钉群。