Проблема

Если вам придется делать ноду для ClickHouse из нескольких дисков, то не указывайте путь для дисков тот, что указан в настройке <path>.

<storage_configuration>
    <disks>
        <disk_hdd>
            <path>/var/lib/clickhouse-hdd/</path>
        </disk_hdd>
        <disk_ssd>
            <path>/var/lib/clickhouse-ssd/</path>
        </disk_ssd>
    </disks>
    <policies>
        <moving_to_ssd>
            <volumes>
                <hot>
                    <disk>disk_ssd</disk>
                </hot>
                <cold>
                    <disk>disk_hdd</disk>
                </cold>
            </volumes>
            <move_factor>0.2</move_factor>
        </moving_to_ssd>
    </policies>
</storage_configuration>
<!-- Path to data directory, with trailing slash. -->
<path>/var/lib/clickhouse-hdd/</path>
CREATE TABLE stripcash.events
(
    `type` UInt64,
    `eventAt` DateTime,
    `eventDate` Date DEFAULT toDate(clickAt),
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(eventDate)
SETTINGS storage_policy = 'moving_to_ssd'

Причина

Если вы запустите сервер с такими настройками вы не получите никаких предупреждений. Вы начнете спокойно использовать такую конфигурацию и вставлять данные в таблицу. Но если вы перезапустите сервере то увидите ошибку:

2020.06.15 05:54:59.867745 [ 195173 ] {} <Error> Application: DB::Exception: Part `201811_0_2998_6` was found on disk `default` which is not defined in the storage policy: Cannot attach table `default`.`events` from metadata file

При старте сервера CH находит парты в пути /var/lib/clickhouse-hdd/ и думает что нашел парты в path . Тот путь что указан path считается диском с именем default и выдает ошибку:

Решение

  1. Создайте пути /var/lib/clickhouse-hdd/hdd и /var/lib/clickhouse-hdd/default
  2. Поменяйте конфигурацию на:
<storage_configuration>
    <disks>
        <disk_hdd>
            <path>/var/lib/clickhouse-hdd/hdd/</path>
        </disk_hdd>
        <disk_ssd>
            <path>/var/lib/clickhouse-ssd/</path>
        </disk_ssd>
    </disks>
    <policies>
        <moving_to_ssd>
            <volumes>
                <hot>
                    <disk>disk_ssd</disk>
                </hot>
                <cold>
                    <disk>disk_hdd</disk>
                </cold>
            </volumes>
            <move_factor>0.2</move_factor>
        </moving_to_ssd>
    </policies>
</storage_configuration>
<!-- Path to data directory, with trailing slash. -->
<path>/var/lib/clickhouse-hdd/default/</path>
  1. Переместите все из /var/lib/clickhouse-hdd/ в /var/lib/clickhouse-hdd/default кроме hdd и default
  2. Переместите из /var/lib/clickhouse-hdd/default/data/events в /var/lib/clickhouse-hdd/hdd/data/events
  3. Запустите сервер.

Таким образом все парты относящиеся к политике moving_to_ssd будут на месте.

ttps://github.com/ClickHouse/ClickHouse/issues/11678