# PolarDB-FileSystem
**Repository Path**: captain20231/PolarDB-FileSystem
## Basic Information
- **Project Name**: PolarDB-FileSystem
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-04-22
- **Last Updated**: 2024-04-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 什么是PFS
PolarDB File System,简称PFS或PolarFS,是由阿里云自主研发的高性能类POSIX的用户态分布式文件系统,服务于阿里云数据库PolarDB产品。
# 快速入门
PFS(PostgreSQL版)是以后台进程(pfsdaemon)的方式提供服务,目前完成基于AliOS以及CentOS 7.5的开发和测试工作,其他Linux版本理论上也可以搭建。
## 安装依赖
以CentOS 7.5为例,构建工程需要完成以下软件安装:
- [CMake](https://cmake.org/):需要2.8及以上版本。
- [gcc&g++](http://www.gnu.org/software/gcc/):需要4.8.5及以上版本。
- [zlog](https://github.com/HardySimpson/zlog/releases):需要1.2.12及以上版本。
- [libaio-devel](https://pagure.io/libaio)
CMake、gcc&g++、libaio-devel的安装建议使用yum或apt-get。
zlog需要下载源码后执行 `make && sudo make install` 安装,而且由于zlog安装的目录在`/usr/local/lib`,如果运行时找不到动态库,可以通过`ldconfig`配置进行添加。
本项目也提供rpm包安装,如果使用rpm包安装,跳过编译和安装这2个步骤。
## 编译
依赖项准备好后,进入代码根目录,执行脚本进行编译:
```bash
./autobuild.sh
```
## 安装pfsdaemon
安装pfsdaemon需要root权限。
在完成编译工作后,使用安装脚本 install.sh 进行自动化安装:
```bash
sudo ./install.sh
```
## 运行pfsdaemon
##### 1. 格式化存储设备。首先执行以下命令查找现有的块设备:
```bash
lsblk
```
选择需要格式化的块设备名,例如 nvme1n1,运行pfs格式化命令:
```bash
sudo pfs -C disk mkfs nvme1n1
```
##### 2. 执行如下脚本启动pfsdaemon:
```bash
sudo /usr/local/polarstore/pfsd/bin/start_pfsd.sh -p nvme1n1
```
其中,"-p 设备名"必须设置,nvme1n1指代设备名。
其他可选启动参数如下:
```bash
-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
```
##### 3. 可执行如下脚本停止pfsdaemon:
```bash
sudo /usr/local/polarstore/pfsd/bin/stop_pfsd.sh nvme1n1
```
nvme1n1指代设备名。
##### 4. 清除pfsdaemon运行文件。
停止pfsdaemon后,清理运行时产生的临时文件、日志、共享内存文件:
```bash
sudo /usr/local/polarstore/pfsd/bin/clean_pfsd.sh nvme1n1
```
nvme1n1指代设备名。
##### 5. 使用PFS工具进行检查。
参照[PFS工具使用说明](docs/PFS_Tools-CN.md),进行常见的文件操作,验证文件系统是否正确安装。
例如使用如下命令,可以查看创建的新文件 hello.txt:
```bash
sudo pfs -C disk touch /nvme1n1/hello.txt
sudo pfs -C disk ls /nvme1n1/
```
nvme1n1指代设备名。
## 卸载pfsdaemon
卸载pfsdaemon需要root权限。
##### 1. 执行如下脚本停止pfsdaemon:
```bash
sudo /usr/local/polarstore/pfsd/bin/stop_pfsd.sh nvme1n1
```
##### 2. 使用卸载脚本 uninstall.sh 进行卸载:
```bash
sudo ./uninstall.sh
```
# 文档
在docs目录下,包括内容如下:
- [PFS_Tools-CN.md](docs/PFS_Tools-CN.md):PFS工具的命令使用手册。
# License
PFS基于[Apache License 2.0](https://www.apache.org/licenses/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](https://help.aliyun.com/product/172538.html)
- 使用钉钉扫描如下二维码,加入钉钉群。
