diff --git a/docs/src/database/postgis.md b/docs/src/database/postgis.md index b11f3c9..ff47142 100644 --- a/docs/src/database/postgis.md +++ b/docs/src/database/postgis.md @@ -77,16 +77,16 @@ make install #### 安装fuzzystrmatch扩展 -fuzzystrmatch 是 PostgreSQL 的一个内置扩展模块,提供一组用于模糊字符串匹配的函数。它的核心作用是支持基于相似度的字符串比较,而非精确匹配。 +`fuzzystrmatch` 是 PostgreSQL 的一个内置扩展模块,提供一组用于模糊字符串匹配的函数。它的核心作用是支持基于相似度的字符串比较,而非精确匹配。 -PostGIS由于以下原因而需要用到 fuzzystrmatch 扩展: +PostGIS由于以下原因而需要用到 `fuzzystrmatch` 扩展: -- 地理编码依赖:postgis_tiger_geocoder(美国地址地理编码器)使用 fuzzystrmatch 的算法来: +- 地理编码依赖:postgis_tiger_geocoder(美国地址地理编码器)使用 `fuzzystrmatch` 的算法来: + 匹配不规范的地址输入(如拼写错误、缩写)。 + 计算地址字符串与数据库中记录地址的相似度。 - 地址标准化:address_standardizer 扩展也依赖它来清洗和标准化地址数据。 -在postgres源码目录下执行下面的操作安装fuzzystrmatch扩展。 +在postgres源码目录下执行下面的操作安装`fuzzystrmatch`扩展。 ```sh cd contrib/fuzzystrmatch @@ -250,7 +250,7 @@ systemctl start postgres 完成上面的操作,postgres服务已经安装完成,重启系统试一下,postgres服务应该可以开机自启。 -### 编译安装PostGIS扩展 +### 编译安装PostGIS #### 安装依赖 @@ -287,6 +287,17 @@ make make install ``` +#### 安装address_standardizer扩展 + +`address_standardizer` 是专为地址数据清洗与标准化设计的扩展,通常与 `postgis_tiger_geocoder`配合使用。它的核心功能是将非结构化、格式不一致的地址转换为结构化、规范化的格式,从而提升地理编码(Geocoding)的准确性和效率。 + +在postgis源码目录下执行下面的操作安装`address_standardizer`扩展。 + +```sh +cd extensions/address_standardizer + +``` + #### 创建数据库并启用PostGIS扩展 ```sh diff --git a/docs/src/ops/rustfs.md b/docs/src/ops/rustfs.md new file mode 100644 index 0000000..e17caf7 --- /dev/null +++ b/docs/src/ops/rustfs.md @@ -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 +``` \ No newline at end of file