Um repositório que desenvolve alterações no Btrfs para futuras versões do kernel Linux aceitou um conjunto de patches implementando uma política de balanceamento cíclico de operações de leitura em RAID1, utilizando o algoritmo "Round-robin". Para ativar a distribuição das operações de leitura em um ciclo circular em "/sys/fs/btrfs//read_policy", é necessário definir o valor "round-robin:[min_contiguous_read]", onde o parâmetro opcional "min_contiguous_read" determina o tamanho mínimo das solicitações a serem balanceadas entre os espelhos (por padrão, o valor é de 256 KiB).
Inicialmente, o balanceamento de carga RAID1 no Btrfs era realizado com base no PID do processo que solicitou I/O. Esse esquema funcionava bem em sistemas onde a carga era gerada por muitos processos diferentes, no entanto, em uma carga de execução única, não permitia alcançar desempenho máximo. Por exemplo, em testes realizados, a ativação da política "round-robin" reduziu o tempo de execução do processo de desfragmentação de 18 para 8,8 segundos.
Adicionalmente, foi adicionada uma alteração implementando o parâmetro "devid:" em "/sys/fs/btrfs//read_policy". Este parâmetro desativa o balanceamento e prescreve que as operações de leitura devem ser realizadas apenas a partir do disco especificado.
Fonte: opennet.ru
