• Clickhouse设置多磁盘存储策略


    设置多磁盘存储

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

    查看当前的存储策略

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

    可以看到只有一个default

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

    准备好磁盘目录

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    添加配置

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

        
            
                 
                    /data01/clickhouse/
                 
                
                    /data02/clickhouse/
                
    			
                    /data03/clickhouse/
                
    			
                    /data04/clickhouse/
                
    			
                    /data05/clickhouse/
                
                
                    /root/clickhouse_storage/cold/ 
                    1073741824
                
            
    
    
    
            
                 
                    
                         
                            disk_hot1
                            disk_hot2
    						disk_hot3
    						disk_hot4
    						disk_hot5
                        
                    
                
    
                
                    
                        
                            disk_hot1 
                            disk_hot2 
                            1048576
                        
                        
                            disk_cold
                        
                    
                    0.2
                
            
        
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 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   │
    └───────────┴──────────────────────────┴──────────┴──────────┴──────────┘
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

     :) 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 │
    └─────────────┴─────────────┴─────────────────┴───────────────────────────────────────────────────────────────┴────────────────────┴─────────────┘
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    v4l2打开相机获取流demo及命令打开相机设备
    golang使用beego.orm连接pg数据库出错定位过程
    虹科分享|如何保障医疗数据安全?移动目标防御技术给你满意的答案
    Java精进-手写持久层框架
    【leetcode 力扣刷题】字符串匹配之经典的KMP!!!
    [LeetCode解题报告] 365. 水壶问题
    长连接和短连接有什么区别?
    Linux 任务进程命令练习
    【Java习作】提取汉字拼音首字母(Java版)
    【计算机网络】什么是http?
  • 原文地址:https://blog.csdn.net/qq_43303221/article/details/134547025