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 │
└─────────────┴─────────────┴─────────────────┴───────────────────────────────────────────────────────────────┴────────────────────┴─────────────┘
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在ClickHouse中增加存储策略配置,可以按照以下步骤进行操作: 1. 打开ClickHouse的配置文件,一般在/etc/clickhouse-server/config.xml。 2. 在<storage_configuration>标签下添加一个<disks>标签,用于配置磁盘信息。例如: ``` <disks> <disk> <name>disk1</name> <path>/data/disk1/</path> <keep_free_space>10%</keep_free_space> </disk> <disk> <name>disk2</name> <path>/data/disk2/</path> <keep_free_space>10%</keep_free_space> </disk> </disks> ``` 其中,name为磁盘名称,path为磁盘路径,keep_free_space为保留的磁盘空间百分比。 3. 在<storage_configuration>标签下添加一个<storage_policy>标签,用于配置存储策略信息。例如: ``` <storage_policy> <name>policy1</name> <volumes> <volume> <disk>disk1</disk> <weight>1</weight> </volume> <volume> <disk>disk2</disk> <weight>2</weight> </volume> </volumes> </storage_policy> ``` 其中,name为存储策略名称,volumes为存储卷配置,disk磁盘名称,weight为权重,表示该卷在磁盘中的存储比例。 4. 在<storage_configuration>标签下的<default_profiles>标签中,添加一个<default>标签,并将其中的<storage_policy>设置为刚刚配置的存储策略名称。例如: ``` <default> <readonly>0</readonly> <allow_ddl>1</allow_ddl> <allow_introspection_functions>1</allow_introspection_functions> <max_memory_usage>10000000000</max_memory_usage> <use_uncompressed_cache>0</use_uncompressed_cache> <load_balancing>random</load_balancing> <storage_policy>policy1</storage_policy> </default> ``` 其中,storage_policy为刚刚配置的存储策略名称。 5. 保存配置文件,并重启ClickHouse服务,使配置生效。 以上操作完成后,ClickHouse就会按照存储策略配置将数据存储在不同的磁盘上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值