postgis, rustfs
This commit is contained in:
parent
effd1e1621
commit
7020e7df22
@ -77,16 +77,16 @@ make install
|
|||||||
|
|
||||||
#### 安装fuzzystrmatch扩展
|
#### 安装fuzzystrmatch扩展
|
||||||
|
|
||||||
fuzzystrmatch 是 PostgreSQL 的一个内置扩展模块,提供一组用于模糊字符串匹配的函数。它的核心作用是支持基于相似度的字符串比较,而非精确匹配。
|
`fuzzystrmatch` 是 PostgreSQL 的一个内置扩展模块,提供一组用于模糊字符串匹配的函数。它的核心作用是支持基于相似度的字符串比较,而非精确匹配。
|
||||||
|
|
||||||
PostGIS由于以下原因而需要用到 fuzzystrmatch 扩展:
|
PostGIS由于以下原因而需要用到 `fuzzystrmatch` 扩展:
|
||||||
|
|
||||||
- 地理编码依赖:postgis_tiger_geocoder(美国地址地理编码器)使用 fuzzystrmatch 的算法来:
|
- 地理编码依赖:postgis_tiger_geocoder(美国地址地理编码器)使用 `fuzzystrmatch` 的算法来:
|
||||||
+ 匹配不规范的地址输入(如拼写错误、缩写)。
|
+ 匹配不规范的地址输入(如拼写错误、缩写)。
|
||||||
+ 计算地址字符串与数据库中记录地址的相似度。
|
+ 计算地址字符串与数据库中记录地址的相似度。
|
||||||
- 地址标准化:address_standardizer 扩展也依赖它来清洗和标准化地址数据。
|
- 地址标准化:address_standardizer 扩展也依赖它来清洗和标准化地址数据。
|
||||||
|
|
||||||
在postgres源码目录下执行下面的操作安装fuzzystrmatch扩展。
|
在postgres源码目录下执行下面的操作安装`fuzzystrmatch`扩展。
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd contrib/fuzzystrmatch
|
cd contrib/fuzzystrmatch
|
||||||
@ -250,7 +250,7 @@ systemctl start postgres
|
|||||||
|
|
||||||
完成上面的操作,postgres服务已经安装完成,重启系统试一下,postgres服务应该可以开机自启。
|
完成上面的操作,postgres服务已经安装完成,重启系统试一下,postgres服务应该可以开机自启。
|
||||||
|
|
||||||
### 编译安装PostGIS扩展
|
### 编译安装PostGIS
|
||||||
|
|
||||||
#### 安装依赖
|
#### 安装依赖
|
||||||
|
|
||||||
@ -287,6 +287,17 @@ make
|
|||||||
make install
|
make install
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### 安装address_standardizer扩展
|
||||||
|
|
||||||
|
`address_standardizer` 是专为地址数据清洗与标准化设计的扩展,通常与 `postgis_tiger_geocoder`配合使用。它的核心功能是将非结构化、格式不一致的地址转换为结构化、规范化的格式,从而提升地理编码(Geocoding)的准确性和效率。
|
||||||
|
|
||||||
|
在postgis源码目录下执行下面的操作安装`address_standardizer`扩展。
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd extensions/address_standardizer
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
#### 创建数据库并启用PostGIS扩展
|
#### 创建数据库并启用PostGIS扩展
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|||||||
166
docs/src/ops/rustfs.md
Normal file
166
docs/src/ops/rustfs.md
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
# 部署RustFS服务
|
||||||
|
|
||||||
|
## 部署记录
|
||||||
|
|
||||||
|
### 系统配置
|
||||||
|
|
||||||
|
操作系统:Anolis OS 23.4
|
||||||
|
CPU:2核
|
||||||
|
内存:4GB
|
||||||
|
数据盘:NVMe 100GB * 4
|
||||||
|
|
||||||
|
### 部署过程
|
||||||
|
|
||||||
|
使用非root用户部署
|
||||||
|
|
||||||
|
#### 挂载数据盘
|
||||||
|
|
||||||
|
创建数据盘目录
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo mkdir -p /data/rustfs{0..3}
|
||||||
|
```
|
||||||
|
|
||||||
|
用lsblk查看数据盘
|
||||||
|
|
||||||
|
```bash
|
||||||
|
lsblk
|
||||||
|
```
|
||||||
|
|
||||||
|
格式化并挂载数据盘
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo mkfs.xfs -i size=512 -n ftype=1 -L RUSTFS0 /dev/nvme0n1
|
||||||
|
sudo mkfs.xfs -i size=512 -n ftype=1 -L RUSTFS1 /dev/nvme1n1
|
||||||
|
sudo mkfs.xfs -i size=512 -n ftype=1 -L RUSTFS2 /dev/nvme2n1
|
||||||
|
sudo mkfs.xfs -i size=512 -n ftype=1 -L RUSTFS3 /dev/nvme3n1
|
||||||
|
|
||||||
|
sudo vim /etc/fstab
|
||||||
|
```
|
||||||
|
|
||||||
|
编辑/etc/fstab,添加如下内容
|
||||||
|
|
||||||
|
```bash
|
||||||
|
LABEL=RUSTFS0 /data/rustfs0 xfs defaults 0 0
|
||||||
|
LABEL=RUSTFS1 /data/rustfs1 xfs defaults 0 0
|
||||||
|
LABEL=RUSTFS2 /data/rustfs2 xfs defaults 0 0
|
||||||
|
LABEL=RUSTFS3 /data/rustfs3 xfs defaults 0 0
|
||||||
|
```
|
||||||
|
|
||||||
|
执行挂载
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo mount -a
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 创建用户和相关目录
|
||||||
|
|
||||||
|
创建用户组和用户
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo groupadd -r rustfs
|
||||||
|
sudo useradd -M -r -g rustfs rustfs
|
||||||
|
```
|
||||||
|
|
||||||
|
创建相关目录
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo mkdir -p /var/log/rustfs /var/lib/rustfs
|
||||||
|
```
|
||||||
|
|
||||||
|
设置目录权限
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo chown -R rustfs:rustfs /data/rustfs* /var/log/rustfs /var/lib/rustfs
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 配置环境变量
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo vim /etc/default/rustfs
|
||||||
|
```
|
||||||
|
|
||||||
|
添加如下内容
|
||||||
|
|
||||||
|
```bash
|
||||||
|
RUSTFS_ACCESS_KEY=rustfsadmin
|
||||||
|
RUSTFS_SECRET_KEY=rustfsadmin
|
||||||
|
RUSTFS_VOLUMES="/data/rustfs0 /data/rustfs1 /data/rustfs2 /data/rustfs3"
|
||||||
|
RUSTFS_ADDRESS=":9000"
|
||||||
|
RUSTFS_CONSOLE_ENABLE=true
|
||||||
|
RUST_LOG=error
|
||||||
|
RUSTFS_OBS_LOG_DIRECTORY="/var/log/rustfs/"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 设置systemd服务
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo vim /etc/systemd/system/rustfs.service
|
||||||
|
```
|
||||||
|
|
||||||
|
添加如下内容
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[Unit]
|
||||||
|
Description=RustFS Object Storage Server
|
||||||
|
Documentation=https://rustfs.com/docs/
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
#NotifyAccess=main
|
||||||
|
User=rustfs
|
||||||
|
Group=rustfs
|
||||||
|
|
||||||
|
WorkingDirectory=/var/lib/rustfs
|
||||||
|
EnvironmentFile=/etc/default/rustfs
|
||||||
|
ExecStart=/usr/local/bin/rustfs $RUSTFS_VOLUMES
|
||||||
|
|
||||||
|
LimitNOFILE=1048576
|
||||||
|
LimitNPROC=32768
|
||||||
|
TasksMax=infinity
|
||||||
|
|
||||||
|
Restart=always
|
||||||
|
RestartSec=10s
|
||||||
|
|
||||||
|
OOMScoreAdjust=-1000
|
||||||
|
SendSIGKILL=no
|
||||||
|
|
||||||
|
TimeoutStartSec=30s
|
||||||
|
TimeoutStopSec=30s
|
||||||
|
|
||||||
|
NoNewPrivileges=true
|
||||||
|
|
||||||
|
ProtectHome=true
|
||||||
|
PrivateTmp=true
|
||||||
|
PrivateDevices=true
|
||||||
|
ProtectClock=true
|
||||||
|
ProtectKernelTunables=true
|
||||||
|
ProtectKernelModules=true
|
||||||
|
ProtectControlGroups=true
|
||||||
|
RestrictSUIDSGID=true
|
||||||
|
RestrictRealtime=true
|
||||||
|
|
||||||
|
# service log configuration
|
||||||
|
StandardOutput=append:/var/log/rustfs/rustfs.log
|
||||||
|
StandardError=append:/var/log/rustfs/rustfs-err.log
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 启动服务
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl enable rustfs
|
||||||
|
sudo systemctl start rustfs
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 防火墙配置
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo firewall-cmd --zone=public --add-port=9000-9001/tcp --permanent
|
||||||
|
sudo firewall-cmd --reload
|
||||||
|
```
|
||||||
Loading…
Reference in New Issue
Block a user