flashcache com mdadm e LVM

3

Estou tendo problemas para configurar o flashcache em um sistema com LVM e mdadm, suspeito que estou apenas perdendo um passo óbvio ou fazendo algum mapeamento errado e espero que alguém possa me apontar na direção certa?

informações do sistema:

CentOS 6.4 64 bits

configuração do mdadm

md0 : active raid1 sdd3[2] sde3[3] sdf3[4] sdg3[5] sdh3[1] sda3[0]
      204736 blocks super 1.0 [6/6] [UUUUUU]


md2 : active raid6 sdd5[2] sde5[3] sdf5[4] sdg5[5] sdh5[1] sda5[0]
      3794905088 blocks super 1.1 level 6, 512k chunk, algorithm 2 [6/6] [UUUUUU]


md3 : active raid0 sdc1[1] sdb1[0]
      250065920 blocks super 1.1 512k chunks


md1 : active raid10 sdh1[1] sda1[0] sdd1[2] sdf1[4] sdg1[5] sde1[3]
      76749312 blocks super 1.1 512K chunks 2 near-copies [6/6] [UUUUUU]

pcsvan

PV /dev/mapper/ssdcache   VG Xenvol   lvm2 [3.53 TiB / 3.53 TiB free]
Total: 1 [3.53 TiB] / in use: 1 [3.53 TiB] / in no VG: 0 [0   ]

comando create do flashcache usado:

flashcache_create -p back ssdcache /dev/md3 /dev/md2

pvdisplay

--- Physical volume ---
PV Name               /dev/mapper/ssdcache
VG Name               Xenvol
PV Size               3.53 TiB / not usable 106.00 MiB
Allocatable           yes
PE Size               128.00 MiB
Total PE              28952
Free PE               28912
Allocated PE          40
PV UUID               w0ENVR-EjvO-gAZ8-TQA1-5wYu-ISOk-pJv7LV

vgdisplay

--- Volume group ---
VG Name               Xenvol
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  2
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                1
Open LV               1
Max PV                0
Cur PV                1
Act PV                1
VG Size               3.53 TiB
PE Size               128.00 MiB
Total PE              28952
Alloc PE / Size       40 / 5.00 GiB
Free  PE / Size       28912 / 3.53 TiB
VG UUID               7vfKWh-ENPb-P8dV-jVlb-kP0o-1dDd-N8zzYj

Então é aí que eu estou, eu pensei que era o trabalho feito no entanto, quando criar um volume lógico chamado teste e montagem é / mnt / test a gravação seqüencial é patética, 60 ish MB / s

/ dev / md3 tem 2 x SSDs no RAID0 que sozinho está executando em torno de 800 MB / s de gravação sequencial e estou tentando armazenar em cache / dev / md2 que é de 6 unidades de 1 TB no raid6

Eu li várias páginas ao longo do dia e algumas delas aqui, é óbvio pelos resultados que o cache não está funcionando, mas não tenho certeza do porquê.

Eu adicionei a linha de filtro no lvm.conf

filter = [ "r|/dev/sdb|", "r|/dev/sdc|", "r|/dev/md3|" ]

Provavelmente é algo bobo, mas o cache está claramente executando gravações, então suspeito que não esteja mapeando ou não tenha montado o cache corretamente.

status do dmsetup

ssdcache: 0 7589810176 flashcache stats:
    reads(142), writes(0)
    read hits(133), read hit percent(93)
    write hits(0) write hit percent(0)
    dirty write hits(0) dirty write hit percent(0)
    replacement(0), write replacement(0)
    write invalidates(0), read invalidates(0)
    pending enqueues(0), pending inval(0)
    metadata dirties(0), metadata cleans(0)
    metadata batch(0) metadata ssd writes(0)
    cleanings(0) fallow cleanings(0)
    no room(0) front merge(0) back merge(0)
    force_clean_block(0)
    disk reads(9), disk writes(0) ssd reads(133) ssd writes(9)
    uncached reads(0), uncached writes(0), uncached IO requeue(0)
    disk read errors(0), disk write errors(0) ssd read errors(0) ssd write errors(0)
    uncached sequential reads(0), uncached sequential writes(0)
    pid_adds(0), pid_dels(0), pid_drops(0) pid_expiry(0)
    lru hot blocks(31136000), lru warm blocks(31136000)
    lru promotions(0), lru demotions(0)
Xenvol-test: 0 10485760 linear

Eu incluí o máximo de informações possíveis, aguardo com expectativa as respostas.

    
por Backtogeek 08.11.2013 / 17:43

1 resposta

1

Eu posso ver que / dev / md2 não está desabilitado pelo lvm.conf, mas deveria.

Acho que em configurações tão complexas é melhor adicionar explicitamente dispositivos LVM e desativar todos os outros:

filter = [ "...", "a|/dev/md0|", "a|/dev/md1|", "a|/dev/mapper/ssdcache|", "r|.*|" ]

Além disso, iostat pode ser usado para monitorar a atividade real dos dispositivos.

PS:

Eu sou muito pessimista sobre o seu layout de armazenamento louco, onde as unidades são divididas em muitas partições que participam de tantos RAIDs diferentes.

Sistema {RAID1 (/dev/ssd1p1+/dev/ssd2p1)}
E
Dados {RAID10 (6 whole drives) + flashcache on RAID1 (/dev/ssd1p2+/dev/ssd2p2)}

- muito mais atraente:).

UPD:
Ou melhor ainda:

RAID1 em SSDs inteiros: sistema e partição para flashcache
E
RAID10 / 6 em HDDs inteiros + flashcache

    
por 11.11.2013 / 13:39