跳到主要内容

规划磁盘

seekdb 的服务器依赖数据盘、事务日志盘和 seekdb 的安装盘。如果您是个人用户, 您可以将所有数据放到一块盘上并跳过此步骤。如果您是企业用户,建议将数据分别挂载至三块磁盘。

如果您的机器上没有三块磁盘,或者您使用的是 RAID 磁盘阵列, 您需要对磁盘或者磁盘阵列的逻辑卷进行分区。建议您采用以下方案分区:

  • 数据盘

    数据盘用来存储基线数据,路径由配置参数 data_dir 指定。在您首次启动 seekdb 时,${data_dir}/{sstable,slog} 将自动创建。数据盘的大小由 datafile_disk_percentage/datafile_size 参数决定,您也可在部署完成后通过 datafile_nextdatafile_maxsize 配置项完成磁盘文件的动态扩容,详细的介绍可参见 配置磁盘数据文件的动态扩容

  • 事务日志盘

    事务日志盘的路径由配置参数 redo-dir 指定。建议您将事务日志盘的大小设置为 seekdb 内存的 3 倍到 4 倍及以上。在您首次启动 seekdb 时,${redo-dir} 将自动创建,事务日志盘包含多个固定大小的文件,您可以根据您的需要自动创建和清除事务日志。事务日志达到磁盘总量的 80% 时,将触发自动清除。但是,只有在事务日志对应的内存数据已经合并至基线数据中时,事务日志才能被删除。

    在相同数据量的情况下,事务日志的大小约为内存数据大小的三倍。因此事务日志盘所需空间上限与两次合并后的数据总量成正比。经验公式:事务日志文件大小 = 增量数据内存上限的 3~4 倍。

  • seekdb 安装盘

    seekdb 安装盘的路径由配置参数 base-dir 指定。seekdb 的 RPM 包安装目录位于 ${base-dir} 下。其中,基线数据文件和事务日志文件会通过软链接分别指向独立的数据盘和事务日志盘。seekdb 的运行日志位于 ${base-dir}/log 下。运行日志会不断增长,并且 seekdb 无法自动删除运行日志,因此您需要定时删除运行日志。

磁盘挂载

seekdb 的磁盘挂载点要求如下表所示。

  • 个人用户

    针对于个人用户,可以不进行磁盘的挂载,在使用时建议可使用磁盘空间最小为 5G。

  • 企业用户

    目录大小用途文件系统格式
    /home100 GB~300 GBseekdb 数据库安装盘建议 ext4 或 xfs
    /data/log1分配给 seekdb 的内存大小的 2 倍seekdb 进程日志盘建议 ext4 或 xfs
    /data/1取决于所需存储的数据大小seekdb 进程数据盘建议 ext4 或 xfs
    信息
    • 建议根目录不小于 50 GB。如果使用 LVM,建议创建时使用条带化参数。示例如下:lvcreate -n data -L 3000G obvg --stripes=3 --stripesize=128
    • 建议在生产环境上数据盘与日志盘以及安装盘使用不同的磁盘,避免出现性能问题。

磁盘挂载操作

磁盘挂载需要在 root 用户下操作,并且存在以下两种操作方式:

  • 使用 LVM 工具挂载磁盘(推荐)。
  • 使用 fdisk 工具挂载磁盘。

使用 LVM 工具挂载磁盘

  1. 查看磁盘信息

    使用 fdisk -l 命令识别可用磁盘及分区,确认目标设备(如 /dev/sdb1)。

    fdisk -l
  2. 安装 LVM 工具

    若未预装 LVM,则执行如下命令安装 LVM,如果已安装 LVM,则跳过此步骤。

    • Debian/Ubuntu 系统

      apt-get install lvm2
    • CentOS/RHEL 系统

      yum install lvm2
  3. 创建物理卷(PV)。

    1. 将分区初始化为物理卷。

      pvcreate /dev/sdb1
    2. 验证 PV 创建结果

      pvs
  4. 创建卷组(VG)。

    1. 合并多个物理卷为一个 VG。

      vgcreate vg01 /dev/sdb1 /dev/sdc1  
    2. 查看 VG 信息

      vgs  
  5. 创建逻辑卷(LV)。

    1. 从 VG 中划分 100G 的逻辑卷。

      lvcreate -L 100G -n lv01 vg01

      此处逻辑卷的大小可根据实际情况设置。

    2. 看 LV 信息

      lvs
  6. 格式化和挂载

    1. 格式化为 ext4 文件系统。

      mkfs.ext4 /dev/vg01/lv01 
    2. 创建挂载点

      mkdir -p /data/1
    3. 临时挂载

      mount /dev/vg01/lv01 /data/1
  7. 设置开机自动挂载。

    编辑 /etc/fstab 文件,添加挂载配置:

    vim /etc/fstab

    在配置文件中添加如下内容:

    /dev/vg01/lv01  /data/1  ext4  defaults,noatime,nodiratime,nodelalloc,barrier=0  0  0

使用 fdisk 工具挂载磁盘

  1. 查看磁盘信息

    使用 fdisk -l 命令识别可用磁盘及分区,确认目标设备(如 /dev/sdb1)。

    fdisk -l
  2. 创建分区

    使用 fdisk 工具创建新分区,例如 fdisk /dev/sdb1,输入 n 创建主分区,最后保存(w)。

    fdisk /dev/sdb1
  3. 格式化和挂载

    1. 格式化为 ext4 文件系统。

      mkfs.ext4 /dev/sdb1
    2. 创建挂载点

      mkdir -p /data/1
    3. 临时挂载

      mount /dev/sdb1 /data/1
  4. 设置开机自动挂载。

    编辑 /etc/fstab 文件,添加挂载配置:

    vim /etc/fstab

    在配置文件中添加如下内容:

    /dev/sdb1  /data/1  ext4  defaults,noatime,nodiratime,nodelalloc,barrier=0  0  0

查看磁盘

磁盘挂载后, 执行以下命令检查磁盘挂载情况:

df -h

返回以下结果:

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs 31G 0 31G 0% /dev
tmpfs 31G 0 31G 0% /dev/shm
tmpfs 31G 516K 31G 1% /run
tmpfs 31G 0 31G 0% /sys/fs/cgroup
/dev/vda1 493G 171G 302G 37% /
tmpfs 6.2G 0 6.2G 0% /run/user/0
/dev/sdb1 984G 77M 934G 1% /data/1
/dev/vdc1 196G 61M 186G 1% /data/log1
/dev/vdb1 492G 73M 467G 1% /home/admin/seekdb

结果说明

  • /data/1 为数据盘,大小为 1 TB。

  • /data/log1 存放日志。

  • /home/admin/seekdb 存放 seekdb 的二进制文件和运行日志。

确保配置文件中的 data_dirredo_dirhome_path 对应的磁盘已经完成挂载。data_dirredo_dir 对应目录为空,data_dir 对应目录的磁盘已经使用率必须低于 4%。

设置目录权限

在磁盘挂载完成后,需要查看磁盘挂载所对应的目录的权限。

执行如下命令查看集群相关文件目录权限。

此处以 data 目录为例:

[root@test001 data]# ls -al

返回如下结果:

drwxr-xr-x 2 admin admin 4096 2 月 9 18:43 .
drwxr-xr-x 2 admin admin 4096 2 月 9 18:43 log1

若查看目录权限后,发现 admin 用户无相关文件的权限,可执行如下命令修改文件所属用户:

[root@test001 ~]# chown -R admin:admin /data/log1
[root@test001 ~]# chown -R admin:admin /data

此处 /data/log1/data 为示例挂载目录,您需根据您真实的挂载目录进行替换。