LVM Raid 1 + SSD Caching

3

Eu tenho três discos:

  • /dev/sda hdd lento
  • /dev/sdb hdd lento
  • /dev/sdc rápido ssd
  • /dev/vg0 grupo de volumes consistindo em /dev/sd{a,b,c}

Cada volume lógico (lv) deve ser espelhado pelo raid1 e armazenado em cache do ssd.

Com o seguinte comando, eu posso criar um teste raid1 lv chamado mirrored no vg0.

lvcreate --type raid1 -m 1 -L 1G -n test vg0
  • O que eu preciso mudar no comando anterior para que ele use apenas o hdds lento para o espelho raid1? Posso usar o sistema de tags LVMs ( @hdd, @ssd ) para isso?
  • Encontrei alguns tutoriais que explicaram como usar o recurso de cache do LVM. Mas parece que eu preciso criar para cada lv um próprio pool de cache. É possível criar um grande conjunto de cache para todo o vg0 para que todos os lvs no vg0 sejam armazenados em cache? Ou posso reutilizar com segurança um pool de cache existente para outros lvs?
por user1091344 06.12.2015 / 14:32

2 respostas

1

Com base na página de manual do lvmcache , parece que o cache é inteiramente lógico volume coisa e não algo que você pode implementar no nível do grupo de volume. Parece irritante não ser capaz de armazenar em cache um VG inteiro, mas isso parece ser uma limitação arquitetônica.

Com relação a forçar a criação de um LV usando apenas PVs específicos, você pode especificar os PVs no final do comando lvcreate .

Esta é a sinopse da página man com as opções estranhas removidas:

lvcreate  <...> [VolumeGroup{Name|Path} [/ExternalOrigin  |  Origin  |  Pool}LogicalVolumeName]  [PhysicalVolumePath[:PE[-PE]]...]

Eu acho que muitas pessoas sentem falta disso, já que a sinopse é bem "envolvida". Mas esse recurso é realmente necessário ao criar seu cache, já que você precisa forçar os LVs do cache a estarem nos PVs do SSD.

Sidenote: uma pesquisa rápida revela que o espelhamento de LVM é geralmente considerado muito mais lento que o software Linux RAID. Mas eu acho que você pode recuperar parte dessa performance perdida com algum ajuste.

    
por 15.01.2016 / 14:21
1

Um projeto interessante é o bcache: link

Com o bcache você pode configurar um ssd como um cache rápido de um disco maior (rotativo) lento. Dessa forma, os blocos mais acessados serão lidos (e gravados se configurados) de (para) o ssd mais rápido, preservando o sistema de arquivos maior nos discos mais lentos.

    
por 15.01.2016 / 16:36