Clickhouse设置多磁盘存储策略

设置多磁盘存储

clickhouse安装完成以后,配置了一个默认的存储空间, 这个只能配置一个目录,如果要使用多个磁盘目录,则需要配置磁盘组策略

查看当前的存储策略

select name, path, formatReadableSize(free_space) as free, formatReadableSize(total_space) as total, formatReadableSize(keep_free_space) as reserved from system.disks;

可以看到只有一个default

┌─name────┬─path─────────────────────┬─free─────┬─total────┬─reserved─┐
│ default │ /data06/clickhouse/ │ 1.54 TiB │ 1.82 TiB │ 0.00 B   │
└─────────┴──────────────────────────┴──────────┴──────────┴──────────┘

准备好磁盘目录

mkdir /data01/clickhouse
mkdir /data02/clickhouse
mkdir /data03/clickhouse
mkdir /data04/clickhouse
mkdir /data05/clickhouse

chown -R clickhouse:clickhouse /data01/clickhouse
chown -R clickhouse:clickhouse /data02/clickhouse
chown -R clickhouse:clickhouse /data03/clickhouse
chown -R clickhouse:clickhouse /data04/clickhouse
chown -R clickhouse:clickhouse /data05/clickhouse

添加配置

添加配置到/etc/clickhouse-server/config.xml 中

    <storage_configuration>
        <disks>
            <disk_hot1> <!-- 自定义磁盘名称 -->
                <path>/data01/clickhouse/</path>
            </disk_hot1> 
            <disk_hot2>
                <path>/data02/clickhouse/</path>
            </disk_hot2>
			<disk_hot3>
                <path>/data03/clickhouse/</path>
            </disk_hot3>
			<disk_hot4>
                <path>/data04/clickhouse/</path>
            </disk_hot4>
			<disk_hot5>
                <path>/data05/clickhouse/</path>
            </disk_hot5>
            <disk_cold>
                <path>/root/clickhouse_storage/cold/</path> 
                <keep_free_space_bytes>1073741824</keep_free_space_bytes>
            </disk_cold>
        </disks>



        <policies>
            <jbod_police> <!-- 自定义策略名称 -->
                <volumes>
                    <jbod> <!-- 自定义磁盘组名称 -->
                        <disk>disk_hot1</disk>
                        <disk>disk_hot2</disk>
						<disk>disk_hot3</disk>
						<disk>disk_hot4</disk>
						<disk>disk_hot5</disk>
                    </jbod>
                </volumes>
            </jbod_police>

            <hot_cold_police>
                <volumes>
                    <hot>
                        <disk>disk_hot1</disk> 
                        <disk>disk_hot2</disk> 
                        <max_data_part_size_bytes>1048576</max_data_part_size_bytes>
                    </hot>
                    <cold>
                        <disk>disk_cold</disk>
                    </cold>
                </volumes>
                <move_factor>0.2</move_factor>
            </hot_cold_police>
        </policies>
    </storage_configuration>
  • keep_free_space_bytes:选填项,表示不被使用的磁盘空间大小
  • jbod策略只需要配置一个磁盘组,part(如202107_0_0_0)储存轮询每个disk;适用于挂载了多块磁盘,但未配置RAID
  • hot/cold策略配置hot和cold两个磁盘组, part未超过(max_data_part_size_bytes[选填项] * move_factor[选填项, 默认0.1])则储存在hot磁盘组,超过则储存在cold磁盘组;适用于挂载了SSD和HDD磁盘
  • 磁盘策略可以配置多个

配置生效

依次重启每个节点:

/etc/init.d/clickhouse-server restart

再看磁盘disk就有多个了:

:) select name, path, formatReadableSize(free_space) as free, formatReadableSize(total_space) as total, formatReadableSize(keep_free_space) as reserved from system.disks;

┌─name──────┬─path─────────────────────┬─free─────┬─total────┬─reserved─┐
│ default   │ /data03/clickhouse/ │ 1.54 TiB │ 1.82 TiB │ 0.00 B   │
│ disk_hot1 │ /data06/clickhouse/ │ 1.58 TiB │ 1.82 TiB │ 0.00 B   │
│ disk_hot2 │ /data07/clickhouse/ │ 1.61 TiB │ 1.82 TiB │ 0.00 B   │
│ disk_hot3 │ /data08/clickhouse/ │ 1.58 TiB │ 1.82 TiB │ 0.00 B   │
│ disk_hot4 │ /data09/clickhouse/ │ 1.58 TiB │ 1.82 TiB │ 0.00 B   │
│ disk_hot5 │ /data10/clickhouse/ │ 1.60 TiB │ 1.82 TiB │ 0.00 B   │
└───────────┴──────────────────────────┴──────────┴──────────┴──────────┘

存储策略也可以看到了,这个存储策略在建表的时候,可以指定

 :) select policy_name, volume_name, volume_priority, disks, formatReadableSize(max_data_part_size) max_data_part_size, move_factor from system.storage_policies;

┌─policy_name─┬─volume_name─┬─volume_priority─┬─disks─────────────────────────────────────────────────────────┬─max_data_part_size─┬─move_factor─┐
│ default     │ default     │               1 │ ['default']                                                   │ 0.00 B             │           0 │
│ jbod_police │ jbod        │               1 │ ['disk_hot1','disk_hot2','disk_hot3','disk_hot4','disk_hot5'] │ 0.00 B             │         0.1 │
└─────────────┴─────────────┴─────────────────┴───────────────────────────────────────────────────────────────┴────────────────────┴─────────────┘
相关推荐
爱上口袋的天空4 小时前
09 - Clickhouse的SQL操作
数据库·sql·clickhouse
爱上口袋的天空3 天前
06 - Clickhouse的表引擎
数据库·clickhouse
吹老师个人app编程教学4 天前
ClickHouse的介绍、安装、数据类型
数据库·clickhouse·oracle
有被蠢哭到4 天前
Python连接Mysql、Postgre、ClickHouse、Redis常用库及封装方法
redis·python·mysql·clickhouse·postgresql
genghongsheng4 天前
执行flink sql连接clickhouse库
数据库·clickhouse·flink
爱上口袋的天空5 天前
04 - Clickhouse-21.7.3.14-2单机版安装
linux·服务器·clickhouse
LanFengXuXue5 天前
Clickhouse集群新建用户、授权以及remote权限问题
数据库·clickhouse
期待着201312 天前
ClickHouse创建分布式表
数据库·clickhouse
昨天今天明天好多天13 天前
【ClickHouse】创建表
数据库·clickhouse·oracle
从未完美过13 天前
clickhouse自增id的处理
数据库·clickhouse