#集群管理命令

# ycsctl create cluster

该命令用于创建一个新的集群,命令格式如下:

ycsctl create cluster clustername [-clusterid id] [-o]

clustername

集群名称,要求4 ~ 64个字符,支持字母、数字、连字符(-)以及下划线(_),且必须以字母开头。

clusterid

集群唯一ID,要求1 ~ 32个十六进制字符,用于区分集群的唯一性。此选项非必选,通过yasboot部署共享集群时会自动生成唯一ID。

-o

表示覆盖上一个集群,如果加了此选项,则之前创建的集群配置信息都将被删除,请谨慎使用

# ycsctl set_ycr

该命令用于给当前集群配置参数,只支持集群离线执行,需停止集群后启动yasfs服务,离线执行完成后,必须停止yasfs服务后再启动集群。命令格式如下:

ycsctl set_ycr key value

key

支持对NETWORK_HB_TIMEOUT、DISK_HB_KEEP_ALIVE和FENCE_TYPE的离线修改,修改前请先停止集群运行。参数详细说明请参考共享集群配置

value

对应参数的取值范围中的某个整数值:

  • NETWORK_HB_TIMEOUT:取值范围[2,600],默认值为30。
  • DISK_HB_KEEP_ALIVE:取值范围[2,600],默认值为60。
  • FENCE_TYPE:取值范围[0|1],默认值为0。

# ycsctl add node

该命令用于在集群部署阶段向集群中添加一个节点,集群部署完成后,无法使用该命令。命令格式如下:

ycsctl add node nodename yascs_url [--vip ip/netmask/interface] [-p port]

nodename

为添加的节点指定一个名称,要求4 ~ 64个字符,支持字母、数字、连字符(-)以及下划线(_),且必须以字母开头。

YCS要求nodename必须与服务器名称一致(使用hostnamectl命令查看所在服务器的名称),否则集群将启动失败。

yascs_url

节点对应服务器的地址及端口,格式为:IPv4:PORT/[IPv6]:PORT,例如:192.168.1.2:1770或[fc00:7::126]:1688,IP地址具体规格见yasql章节。

多个YCS节点之间通过yascs_url实现互联,需保证所指定的IP地址之间路由可达,端口号没有冲突。

--vip

节点对应服务器的VIP资源配置信息,格式为:IP地址/子网掩码[/网卡名],例如:192.168.60.4/255.255.255.0/ens192或fc00:60::4/64/enp1s0,具体功能说明请查阅VIP管理

-p

节点对应服务器的服务端口号,数据库实例和VIP资源都会监听该端口。必须和此服务器上的数据库实例配置参数LISTEN_ADDR的端口号一致。

# ycsctl add yasdbinstance

该命令用于在集群部署阶段向集群中添加数据库实例,集群部署完成后,无法使用该命令。命令格式如下:

ycsctl add yasdbinstance nodename.yasdbinstancename startshell stopshell monitorshell

nodename

集群中已存在的节点名称。

yasdbinstancename

节点上已安装的数据库实例名称,必须与该数据库中的INSTANCE_NAME参数值一致,并且不能重复。

startshell

数据库实例的启动脚本名称,集群中所有节点的启动脚本名称必须一致。

该shell脚本必须为sh脚本,名称要求4 ~ 64个字符,支持字母、数字、连字符(-)以及下划线(_),且必须以字母开头,以.sh作为扩展名后缀。

stopshell

数据库实例的停止脚本名称,集群中所有节点的停止脚本名称必须一致。

该shell脚本必须为sh脚本,名称要求4 ~ 64个字符,支持字母、数字、连字符(-)以及下划线(_),且必须以字母开头,以.sh作为扩展名后缀。

monitorshell

数据库实例的监控脚本名称,集群中所有节点的监控脚本名称必须一致。

监控脚本是预留功能,仅需在此处配置,不要求此脚本存在。

# ycsctl modify

该命令用于在集群部署完成后,修改集群的属性,只支持集群离线执行,需停止集群后启动yasfs服务,离线执行完成后,必须停止yasfs服务后再启动集群。命令格式如下:

ycsctl modify object objectname key=value

object

集群中的管理对象,支持node(集群节点)和yasdbinstance(数据库实例)。

objectname

待修改的对象名,如集群节点名和数据库实例名。其中,数据库实例名的格式为nodename[.yasdbinstancename],通常一个集群节点管理一个数据库实例,因此yasdbinstancename也可省略。

key

待修改的属性名,支持serviceport(节点服务端口号)和yasdbinstancename(数据库实例名)。

value

待修改的属性的值。

示例

# 修改节点服务端口号
$ ycsctl modify node yas1 serviceport=1601

# 修改数据库实例的实例名
$ ycsctl modify yasdbinstance yas1.yasdb1 yasdbinstancename=yashandb1

# ycsctl import

该命令用于给当前集群导入指定的配置脚本,命令格式如下:

ycsctl import srcfile [-f]

srcfile

srcfile即为指定的配置脚本的完整路径。

-f

导入的配置需要重启生效,通常情况下,导入前会先进行节点活跃性检查,以免在线导入引起配置不一致问题。如有需要,可通过该可选参数指定跳过节点活跃性检查直接强制导入,请根据实际操作场景谨慎使用

推荐的操作流程为:先停止整个集群,再执行导入,导入完成后启动集群。

# ycsctl export

该命令用于给当前集群导出配置脚本的信息,命令格式如下:

ycsctl export destdir

destdir

destdir即为需要导出到的目标文件夹,导出脚本固定名为ycrbackup.sh。

# ycsctl show config

该命令用于查看当前集群的配置信息,命令格式如下:

ycsctl show config

示例

$ ycsctl show config
    Cluster name: yashandb, config version: 6
    Cluster id: 47383c354eda3d04e517cdc21862431e
    Network timeout: 30s
    Disk heartbeat keep alive: 60s
    Fence type: I/O Protection Algorithm
    Default resource yasfs: enabled
    Network: 192.168.1.0/24
    Resource SCAN: enabled
    SCAN name: scan.example.com, listening port: 1688
      SCAN VIP: 192.168.1.100, ordinal number: 1
      SCAN VIP: 192.168.1.101, ordinal number: 2
      SCAN VIP: 192.168.1.102, ordinal number: 3
    Resource vip: enabled
    Shell in cluster:
      Start shell:   start.sh
      Stop shell:    stop.sh
      Monitor shell: monitor.sh
    Nodes in cluster:
      Node name: yas1, yascs/yasfs inter connect URL: 172.16.1.2:1788, Node ID: 1
        public service port: 1688
        yasdb instance name:yasdb-1-1, yasdb instance id:1
        VIP: 192.168.1.62/24/ens192, home node: yas1
      Node name: yas2, yascs/yasfs inter connect URL: 172.16.1.3:1788, Node ID: 2
        public service port: 1688
        yasdb instance name:yasdb-1-2, yasdb instance id:1
        VIP: 192.168.1.63/24/ens192, home node: yas2

Cluster name

当前集群名称。

config version

YCR配置版本,集群创建后,每次更改集群注册信息时配置版本就会加一。

Cluster id

当前集群的唯一ID。

Network timeout

指定YCS网络心跳超时时间,单位为秒,超过此时间,判定为网络超时,YCS进入故障处理流程。

可以通过ycsctl set_ycr命令进行修改,key为NETWORK_HB_TIMEOUT。

Disk heartbeat keep alive

YCS磁盘心跳超时时间,单位为秒,超过此时间,认为YCS节点出现磁盘心跳故障并且无法恢复,YCS进入故障处理流程。

可以通过ycsctl set_ycr命令进行修改,key为DISK_HB_KEEP_ALIVE。

Fence type

YCS执行I/O Fencing的类型。

可以通过ycsctl set_ycr命令进行修改,key为FENCE_TYPE。

Default resource yasfs

内嵌资源YFS,默认启动。

Network

集群的公网配置。

Resource SCAN

集群是否开启SCAN功能,默认关闭。

SCAN name

SCAN域名。

listening port

SCAN的监听端口。

SCAN VIP

SCAN VIP信息,包括IP地址和序号。

Resource vip

集群是否开启VIP功能,默认关闭。

Start shell

数据库实例的启动脚本名称。

Stop shell

数据库实例的停止脚本名称。

Monitor shell

数据库实例的监控脚本名称。

Node name

集群中的节点名称。

yascs/yasfs inter connect URL

节点间的互联地址。

yasdb instance name

节点上数据库实例的名称。

public service port

节点监听的服务端口号。

yasdb instance id

节点上数据库实例的ID。

VIP

节点上VIP资源的配置信息(IP地址/子网掩码/网卡名)以及它的部署节点名。

# ycsctl extend node

该命令用于在集群运行时动态扩展一个节点或清理扩容残留数据。若集群正在投票仲裁流程中,执行此命令将报错,需等待YCS完成投票仲裁后再次执行。

Caution:

如需进行共享集群实例扩容,推荐使用yasboot工具提供的一键式命令yasboot node add,不建议单独执行该命令。

命令格式如下:

ycsctl extend node <-f filename|--clean> [--post-db]

-f

新增节点的配置文件路径,支持绝对路径和相对路径,必须是ini文件,配置项不可缺失。配置文件示例如下:

$ cat $YASDB_HOME/extend/yas_scale.ini
INTER_ADDR=192.168.1.6:1788      # 新YCS节点的节点间互联地址和端口,格式为IPv4:PORT/[IPv6]:PORT,需确保现有节点都可访问该地址,且端口未被占用
NODE_NAME=yas5                   # 新YCS节点的名称,要求全局唯一,长度为4 - 64个字符,支持字母、数字、连字符(-)以及下划线(_),且必须以字母开头
YASDB_NAME=yasdb                 # 新YCS节点对应数据库实例的名称,必须与该数据库中的INSTANCE_NAME参数值一致
VIP=192.168.60.6/24/ens192       # 新YCS节点的VIP资源配置信息,可选。当集群已开启VIP时,新节点必须提供此项。
SERVICE_PORT=1601                # 新YCS节点的服务端口号,可选。

--clean

清理未完成的集群扩容任务的残留数据。

--post-db

若集群数据库已完成实例添加,携带此选项以让YCS直接完成集群扩容。

# ycsctl add network

该命令用于为集群增加公网配置,命令格式如下:

ycsctl add network -subnet subnet/netmask[/interface] [-offline] 

添加公网后才能使用VIP或SCAN功能。

-subnet

公网的配置信息,格式为:子网/子网掩码/网卡名,其中网卡名可以省略。

  • 若不指定网卡名,将使用可以访问给定子网的任意网卡。

  • 若指定网卡名,请确保同一集群中所有服务器都有可以访问给定子网的同名网卡。

-offline

表示允许在YCS未启动时执行该命令。

# ycsctl remove network

该命令用于为集群删除公网配置,必须先删除所有VIP和SCAN配置才能删除公网。

命令格式如下:

ycsctl remove network

# ycsctl add vip

该命令用于在集群运行时动态添加一个VIP资源,命令格式如下:

ycsctl add vip -n name --vip ip/netmask[/interface]

-n

待添加的VIP资源的部署节点名。

--vip

VIP资源的配置信息,必须属于公网子网。格式为:IP地址/子网掩码/网卡名,其中网卡名可以省略。

  • 若不指定网卡名,将延续network的网卡名配置。如果无法确保同一集群中所有服务器访问公网的网卡名一致,则必须省略。

  • 若指定网卡名,请确保不与network指定的冲突,且同一集群中所有服务器均有可以访问公网子网的同名网卡。

# ycsctl remove vip

该命令用于在集群运行时动态删除一个VIP资源,命令格式如下:

ycsctl remove vip -n name [-f]

-n

待删除的VIP资源的部署节点名。

-f

表示强制停止待删除的VIP资源。

# ycsctl add scan

该命令用于为集群添加SCAN资源,命令格式如下:

ycsctl add scan -scanname scan_name -p port [-offline]

-scanname

SCAN域名,名称需为完整限定主机名。

客户端/驱动可通过该名称连接数据库。

-p

SCAN的监听端口。

-offline

表示允许在YCS未启动时执行该命令。

# ycsctl start scan

该命令用于启动SCAN VIP,命令格式如下:

ycsctl start scan [-scannumber ordinal_number] [-node node_name]

-scannumber

目标SCAN VIP的序号,取值为1、2或3,序号与SCAN VIP的对应关系可通过ycsctl show config查看。省略时表示启动所有SCAN VIP。

-node

SCAN VIP的启动节点名,省略时,YCS将按均匀分布的原则自动分配启动节点。

# ycsctl stop scan

该命令用于停止SCAN VIP,命令格式如下:

ycsctl stop scan [-scannumber ordinal_number]

-scannumber

目标SCAN VIP的序号,取值为1、2或3,序号与SCAN VIP的对应关系可通过ycsctl show config查看。省略时表示停止所有SCAN VIP。

# ycsctl relocate scan

该命令用于手动迁移SCAN VIP,即将某个SCAN VIP移到其他节点,命令格式如下:

ycsctl relocate scan -scannumber ordinal_number [-node node_name]

-scannumber

目标SCAN VIP的序号,取值为1、2或3,序号与SCAN VIP的对应关系可通过ycsctl show config查看。

-node

目标节点,省略则YCS将按照高可用和均匀分布的原则自动迁移。

# ycsctl remove scan

该命令用于移除SCAN,命令格式如下:

ycsctl remove scan [-f]

-f

表示强制停止SCAN并删除。

edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流