SlideShare uma empresa Scribd logo
AVALIAÇÃO DOS MECANISMOS DE
CACHE EM DISPOSITIVOS DE
ARMAZENAMENTO SECUNDÁRIO
COM DISCOS DE ESTADO SÓLIDO
Proposta de Dissertação de Mestrado
Aluno: Leonardo Antônio dos Santos
Orientador: Luiz Carlos Erpen de Bona
Co-orientador: Carlos Alberto Maziero
PPGInf - UFPR
SUMÁRIO
• INTRODUÇÃO
• ESTRUTURAS DE ARMAZENAMENTO SECUNDÁRIO
• Acesso a disco no Kernel do Linux
• Estrutura de Caches no Linux
• Dispositivos de Armazenamento
• Redundant Array of Inexpensive Disk
• ALGORITMOS DE SUBSTITUIÇÃO DE CACHE
• OPT, LRU, LIRS, ARC, MQ
• IMPLEMENTAÇÕES DE CACHE NO LINUX
• BCACHE, DMCACHE
• PROPOSTA
• Objetivos, Detalhamento;
• Resultados Preliminares;
• Calendário
PPGInf - UFPR
INTRODUÇÃO (I)
• 60 a 70: revolução da computação;
• 70 a 80: era da informação;
• ↑ foco no armazenamento;
• Confiabilidade: precisão das informações;
• Desempenho: latência e vazão;
• Escalabilidade:
• para milhares ou milhões de usuários.
PPGInf - UFPR
INTRODUÇÃO (II)
• Hierarquia do Armazenamento de Dados
• Processamento ↑ versus I/O →
• Voláteis (≥ Flash) versus Não-Voláteis (≤ Flash)
• Hierarquização torna-se necessária
• Caches + Algoritmos de Substituição
PPGInf - UFPR
INTRODUÇÃO (III)
• Memória RAM como Cache
• Padrão aos SOs.
• SSD como Cache
• É viável?
• Necessário revisitar:
• Algoritmos de substituição;
• Cache de primeiro nível (RAM);
• Outras formas de melhoria de desempenho
(RAID);
• Implementações de cache de segundo nível
(SSD).
PPGInf - UFPR
ACESSO A DISCO NO KERNEL DO LINUX (I)
• RAW I/O
• File System I/O
• Direct I/O (sem cache)
PPGInf - UFPR
ACESSO A DISCO NO KERNEL DO LINUX (II)
• RAW I/O
• File System I/O
• Direct I/O (sem cache)
PPGInf - UFPR
ACESSO A DISCO NO KERNEL DO LINUX (I)
(FILESYSTEM I/O)
• Interface:
• ↑ usuário
• ↓ file system
• O VFS faz o
processamento inicial das
requisições;
• Seguem o padrão POSIX
• open, read, write, lseek
• Disk Caches
• File System agnostic
PPGInf - UFPR
• Interface:
• ↑ VFS interface
• ↓ File Systems interface
• Cada File System
• possui características
próprias;
• implementa as interfaces
superiores e inferiores.
ACESSO A DISCO NO KERNEL DO LINUX (II)
(FILESYSTEM I/O)
PPGInf - UFPR
ACESSO A DISCO NO KERNEL DO LINUX (III)
(FILESYSTEM I/O)
• Interface:
• ↑ i-node, offset, size
• ↓ block
• Mapeamento
• Feito pelo File System;
• De arquivos solicitados para blocos
no disco;
• Depende de fatores como:
• tabelas de indexação
• gerenciamento de espaço livre
• implementação de diretórios
• métodos de alocação
PPGInf - UFPR
ACESSO A DISCO NO KERNEL DO LINUX (IV)
(FILESYSTEM I/O)
• Interface
• ↑ logical block
• ↓ physical block
• Abstrai detalhes dos
dispositivos de bloco
(físicos ou virtuais) para as
camadas superiores;
• LVM, RAID em software e
similares são
implementados nesta
camada;
PPGInf - UFPR
• Sequencia (sort) os setores
que serão encaminhados
ao dispositivo (LBA);
• Agrupa requisições
(merge) de blocos
adjacentes;
• Implementações:
• Noop
• Deadline
• Anticipatory
• CFQ
ACESSO A DISCO NO KERNEL DO LINUX (V)
(FILESYSTEM I/O)
PPGInf - UFPR
• Mantém em RAM dados normalmente acessados em disco;
• Existem 3 tipos:
• Dentry Cache
• Mapeamento em RAM utilizado pelo VFS para
tradução de i-nodes
• Page Cache
• Composto por page frames que contêm dados
pertencentes a arquivos
• Buffer Cache
• Área em RAM que contém dados dos blocos em disco
ESTRUTURA DE CACHES NO LINUX (I)
PPGInf - UFPR
• Buffer Cache
• Escrita atrasada (write-back)
• Descarga dos buffers em lote com intervalos pré-definidos
(30s)
• Estrutura:
• Buffer Headers: descreve um bloco em cache
• dirty bit (blk mem ≠ blk disk)
• timestamp (políticas de alocação)
• Hash Table
para busca dos buffer headers
• {device, block_number}
identificador do bloco
ESTRUTURA DE CACHES NO LINUX (II)
PPGInf - UFPR
• Page Cache
• Mais simples que o buffer cache
• Opera sobre arquivos (read, write, mmap)
• Não opera necessariamente sobre blocos adjacentes
• Estrutura:
• I-node Queue
lista dos descritores de página de determinado arquivo
• Page Hash Table
para busca dos descritores de página
• {i-node, offset}
identificador da página
ESTRUTURA DE CACHES NO LINUX (III)
PPGInf - UFPR
• A separação entre Page e Buffer Cache foi
mantida somente até a versão 2.4 do Kernel,
sendo unificados posteriormente;
• Lista das principais operações
ESTRUTURA DE CACHES NO LINUX (IV)
PPGInf - UFPR
• É um dispositivo de armazenamento secundário;
• Útil para armazenamento de grandes quantidades
de dados;
• Não-volátil;
• Composição magnética;
• Possui partes mecânicas.
DISPOSITIVOS DE ARMAZENAMENTO (I)
HARD DISK DRIVES (HDD)
PPGInf - UFPR
• Limitações:
• Tempo de posicionamento (seek time)
• impacta o acesso aleatório
• Velocidade de rotação (rotation time)
• Barramento de dados
DISPOSITIVOS DE ARMAZENAMENTO (II)
HARD DISK DRIVES (HDD)
PPGInf - UFPR
• Composição eletrônica;
• Baseado em memórias NAND flash;
• Armazenam eletrons por tempo indefinido
sem uso de energia;
• Baixo consumo de energia;
• Solid State: pela ausência
de partes móveis;
• São versões mais complexas
dos SDs e CF (CompactFlash);
• Melhor mídia de armazenamento
que os HDDs.
DISPOSITIVOS DE ARMAZENAMENTO (III)
SOLID STATE DISK (SSD)
PPGInf - UFPR
DISPOSITIVOS DE ARMAZENAMENTO (IV)
SOLID STATE DISK (SSD)
• Operações:
• Escrita: programming
• Remoção: erasing
• Leitura: bias-voltage
• Limitações:
• Leitura e escrita async
• Escrita ≈2x leitura
• Limite de escritas por bloco
• Write amplification
• Garbage Collection
• Age em um limiar
• Evita comprometer
futuras escritas
• Wear Leveling
PPGInf - UFPR
• Operações:
• Escrita: programming
• Remoção: erasing
• Leitura: bias-voltage
• Limitações:
• Leitura e escrita async
• Escrita ≈2x leitura
• Limite de escritas por bloco
• Write amplification
• Garbage Collection
• Age em um limiar
• Evita comprometer
futuras escritas
• Wear Leveling
DISPOSITIVOS DE ARMAZENAMENTO (V)
SOLID STATE DISK (SSD)
(t1)
(t2)
(t3)
(t4)
PPGInf - UFPR
• Arranjo de discos com o objetivo de aumentar o
desempenho e/ou garantir a redundância dos
dados;
• Desenvolvido inicialmente para melhorar o
desempenho dos discos rotacionais;
• aumento do paralelismo
• Garante a redundância;
• espelhamento dos dados
RAID (I)
PPGInf - UFPR
• RAID0
• RAID1
• RAID5
RAID (II)
Abordagens:
• Mirroring
• Striping
• Parity
• Hot Sparing
PPGInf - UFPR
• Tem por objetivo manter em cache dados com
maior probabilidade de uso posterior;
• Os principais algoritmos estudados são:
• Algoritmo Ótimo (OPT)
• Least Recently Used (LRU)
• Low Inter-Reference Set (LIRS)
• Adaptive Replacement Cache (ARC)
• Multi-Queue (MQ)
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (I)
PPGInf - UFPR
• Não é factível
• Baseia-se no futuro;
• Serve apenas como linha de base para outras
implementações (I/O hits)
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (II)
OPT
PPGInf - UFPR
• Não é factível
• Baseia-se no futuro;
• Serve apenas como linha de base para outras
implementações (I/O hits)
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (II)
OPT
futuro
PPGInf - UFPR
• Considera apenas recência
• Baseia-se no passado e é factível;
• Diversas implementações foram propostas tanto em hardware
(aproximações) quanto em software;
• Ruim em workloads filescaning e acesso a blocos com frequências
variadas;
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (IV)
LRU
PPGInf - UFPR
• Considera apenas recência
• Baseia-se no passado e é factível;
• Diversas implementações foram propostas tanto em hardware
(aproximações) quanto em software;
• Ruim em workloads filescaning e acesso a blocos com frequências
variadas;
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (IV)
LRU
passado
problema!
PPGInf - UFPR
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (V)
LIRS
• Desenvolvido para cache de 1º Nível (RAM);
• Busca reduzir os problemas do LRU;
• IRR: Inter Reference Recency
• Número de blocos acessados sem repetições entre as duas últimas referências
• Mesmo os blocos com baixa recência podem ser substituídos por
conta do IRR;
• Não é adaptativo!
PPGInf - UFPR
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (V)
LIRS
• Desenvolvido para cache de 1º Nível (RAM);
• Busca reduzir os problemas do LRU;
• IRR: Inter Reference Recency
• Número de blocos acessados sem repetições entre as duas últimas referências
• Mesmo os blocos com baixa recência podem ser substituídos por
conta do IRR;
• Não é adaptativo!
PPGInf - UFPR
• Desenvolvido para cache de 1º Nível (RAM);
• Busca reduzir os problemas do LRU;
• IRR: Inter Reference Recency
• Número de blocos acessados sem repetições entre as duas últimas referências
• Mesmo os blocos com baixa recência podem ser substituídos por
conta do IRR;
• Não é adaptativo!
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (V)
LIRS
HIR
LIR
PPGInf - UFPR
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (VI)
ARC
• Adaptável a diversos
workloads
• Detecta mudanças contextuais
• Sem tuning manual
• Considera
• Recência
• Frequência
• Utilizado em caches
de 2º nível (SSDs);
• Mantém informações
históricas (ghost lists);
• Não conta frequências
• MRU: = 1 acesso
• MFU: > 1 acesso
PPGInf - UFPR
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (VII)
ARC
PPGInf - UFPR
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (VII)
ARC
PPGInf - UFPR
• Projetado para caches de 2º nível (SSD);
• Identifica padrões de acesso a 2º nível como diferentes do 1º nível;
• Não requer modificações no primeiro nível de cache;
• Mantém blocos com diferentes frequências em diferentes filas LRU;
• Informações históricas são mantidas
no history buffer;
• FIFO: sem overhead
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (VIII)
MULTI-QUEUE
PPGInf - UFPR
• Função de alocação na cache:
• k = log 2 f (f a frequência de acessos)
• Ex.: o 8º acesso a um bloco de Q2 leva o bloco para Q3
• Os blocos saem da cache para o history buffer por Q0
• Queda de fila
• tempos lógicos
• expireTime = currentTime + lifeTime
• currentTime++ a cada rodada
• verifica LRU das m filas em cada acesso
ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (IX)
MULTI-QUEUE
PPGInf - UFPR
• Implementação Linux para cache de 2º nível com
SSDs;
• Opera na camada de blocos (Block Layer)
• File System agnostic
• Cria um dispositivo virtual;
• Aproveita o que há de melhor nos SSDs e HDDs
de forma transparente através de mecanismos de
cache;
IMPLEMENTAÇÕES DE CACHE NO LINUX (I)
BCACHE
PPGInf - UFPR
• COW (Copy-On-Write)
• Devido a limitação de escrita dos SSDs, evita atualização dos
dados;
• Estrutura:
• Log-structured (simples, não espacial, fácil restore)
• B-tree
• Algoritmo de substituição: LRU
• Parametrização de:
• limites de acesso sequencial (4M)
IMPLEMENTAÇÕES DE CACHE NO LINUX (II)
BCACHE
PPGInf - UFPR
• Opera junto ao device-mapper
• mais simples, menos intrusivo;
• Algoritmo de substituição: MQ
• implementação mais robusta que o BCache;
• Faz uso de 3 dispositivos de armazenamento;
• dados
• cache
• metadados
• Modos de operação:
• write-back
• write-through
• pass-through
IMPLEMENTAÇÕES DE CACHE NO LINUX (III)
DMCACHE
PPGInf - UFPR
• Políticas de substituição:
• multi-queue
• cleaner (para alteração nos dispositivos)
• Parametrização de:
• limites de acesso sequencial
• limites de acesso aleatório
IMPLEMENTAÇÕES DE CACHE NO LINUX (IV)
DMCACHE
PPGInf - UFPR
• Problema: grande variedade de
• Implementações
• Parametrizações
• Algoritmos de substituição
• Arranjos
• Dispositivos
• Cargas de trabalho (workloads)
• Qual é a melhor combinação desses itens para
cada workload?
PROPOSTA (I)
PPGInf - UFPR
• Objetivo Geral
• Uma análise experimental desses fatores no
cenário do armazenamento de dados restrito
ao Linux para uso em conjunto de HDDs e
SSDs, em especial, BCache, DMCache e
RAID.
PROPOSTA (II)
PPGInf - UFPR
• Objetivos Específicos
• analisar o desempenho das implementações de
cache de segundo nível BCache e DMCache para o
Kernel Linux;
• verificar as reais vantagens e desvantagens do uso
de cache frente a outras abordagens;
• apontar melhores caminhos na escolha dos arranjos
de discos e tecnologias;
• identificar falhas e possíveis otimizações para os
algoritmos ou para outros detalhes inerentes as duas
abordagens.
PROPOSTA (III)
PPGInf - UFPR
• Metodologia
Análise experimental através de
• Microbenchmarks:
• Para medir o desempenho em situações
isoladas;
• Explicar com clareza os macrobenchmarks;
• Ferramenta:
• Flexible I/O (fio)
• Medição: acesso sequencial e aleatório.
PROPOSTA (IV)
PPGInf - UFPR
• Metodologia
Análise experimental através de:
• Macrobenchmarks
• Para medição de desempenho em situações
próximas às reais;
• Simulação: acesso Webserver, Varmail,
Fileserver e Oltp;
• Ferramentas:
• Filebench (Webserver, Fileserver, Varmail)
• DBT e/ou TPCC-Uva (Oltp, TPC-C)
PROPOSTA (V)
PPGInf - UFPR
Resultados Preliminares
PROPOSTA (VI)
PPGInf - UFPR
Resultados Preliminares
PROPOSTA (VII)
SSD x HDD
• Leituras sequenciais
• SSD ~ 5x ↑
• Leituras aleatórias
• SSD ~ 50x ↑
• Escritas sequenciais
• SSD ~ 4x ↑
• Escritas aleatórias
• SSD ~ 5x ↑
PPGInf - UFPR
Resultados Preliminares
PROPOSTA (VIII)
HDD x Caches
• Leituras sequenciais
• Cache ~ HDD
• Escritas sequenciais
• Cache ~ HDD
PPGInf - UFPR
Resultados Preliminares
PROPOSTA (VIII)
HDD x Caches
• Leituras aleatórias
• DMCache:
↑ 15ª rodada,
~ 4x > Bcache
• BCache:
LRU descarta dados
importantes
• Escritas aleatórias
• BCache:
envia tudo para a cache
• DMCache:
é mais seletivo
↓ desempenho
PPGInf - UFPR
• Second Buffer Cache Management
• Algoritmo genérico de cache 2º nível, adaptativo: MQ
• Não otimizado para uso em SSDs (para webservers, NFS, CIFS, Samba)
• Limitações
• Traces proprietários (MS)
• Caches muito pequenos (N1: 1GB, N2: 2MB)
• Foco em simuladores
• A Self-Tuning, Low Overhead Replacement Cache
• Algoritmo adaptativo: ARC
• Possui implementação para Solaris
• Limitações
• Testes apenas em cache de 1º Nível
• Mostram apenas hit I/O
• Workloads sintéticos (sem traces reais)
• Caches muito pequenos
• Não apresentam outras métricas: uso de CPU e memória
TRABALHOS RELACIONADOS (I)
PPGInf - UFPR
• SSD Buffer Pool Extensions for Database Systems
• Analisa regiões “quentes” do disco com base nos padrões de
acesso e leva à cache blocos mais importantes
• Limitações:
• De uso especifico para bancos de dados
• Testes realizados apenas sobre o banco DB2
• Flashing Up the Storage Hierarchy
• Estuda o impacto do tamanho das caches, gerenciamento de
metadados e fluxos de dados sobre configurações
hierárquicas (RAM, SSD, HDD)
• Propõe algoritmo para otimizar de ordenação dos dados
hierarquicamente
• Limitações
• Aplicação focada em bancos de dados
TRABALHOS RELACIONADOS (II)
PPGInf - UFPR
1. Estudar as implementações de cache de 2º nível do Linux
2. Estudar a implementação de RAID do Linux
3. Estudar os benchmarks de disco (micro) e aplicação (macro)
4. Implementar a automatização dos benchmarks
5. Realizar testes e comparações dos arranjos frente a implementações de cache
6. Analisar os resultados obtidos nos testes
7. Escrever a dissertação
8. Preparar Defesa
CALENDÁRIO
PPGInf - UFPR
OBRIGADO!
PPGInf - UFPR

Mais conteúdo relacionado

PPTX
Gilvani Moletta - Sistema De Gerenciamento de midias
PPTX
Lynxos RTOS
PDF
Desmistificando o Pinguim
PDF
Principais Comandos Linux (UBUNTU) 2
PPTX
Estou seguro com no sql
PDF
FreeBsd com Alta Disponibilidade
PDF
Onde está o demônio?
PPTX
Paula Rodrigues - apresentação tv gazeta
Gilvani Moletta - Sistema De Gerenciamento de midias
Lynxos RTOS
Desmistificando o Pinguim
Principais Comandos Linux (UBUNTU) 2
Estou seguro com no sql
FreeBsd com Alta Disponibilidade
Onde está o demônio?
Paula Rodrigues - apresentação tv gazeta

Mais procurados (15)

PDF
Implatação de Sistemas de Segurança com Linux
PDF
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
PPTX
Discos Rígidos e Unidades de Estado Sólido
PDF
ZFS – Zettabyte File System
PDF
Apresentando o FreeBSD
PPTX
FreeBSD para leigos
PDF
(11) hardware, modulos
PPTX
Watt OS R6
PPT
PDF
Por que FreeBSD?
PDF
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
PDF
Informática 365 quetões
PDF
Ficha de trabalho 1
PPTX
Socket 7 / K6III
PDF
questoes de info2005 e2006.PDF
Implatação de Sistemas de Segurança com Linux
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
Discos Rígidos e Unidades de Estado Sólido
ZFS – Zettabyte File System
Apresentando o FreeBSD
FreeBSD para leigos
(11) hardware, modulos
Watt OS R6
Por que FreeBSD?
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
Informática 365 quetões
Ficha de trabalho 1
Socket 7 / K6III
questoes de info2005 e2006.PDF
Anúncio

Semelhante a Avaliação dos Mecanismos de Cache em Dispositivos de Armazenamento Secundário com Discos de Estado Sólido (20)

PPT
Gerência de Memória: Memória Principal
PDF
Arquitetura de computadores - memória cache parte 3
ODP
Aspectos do kernel Linux e Instalação
PDF
Gerencia de Memoria Virtual
PDF
Memoria cache princípio da localidade
PPTX
Sistema Operacional - Aula003
PPT
12/03/2010 - Sistemas Operacionais Aula3
PPT
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
PPTX
Linux - Um estudo de caso
PDF
Sistema de Arquivos.pdf
PPT
Memoria Virtual
PDF
resumo-conceitos-de-sistemas-operacionais.pdf
PDF
PPT
Visão Geral: Introdução
PDF
Linux e zephyr conversando no mesmo SoC
PDF
Forense Computacional com Software Livre
PPTX
Sistema Operativo 3
PPT
"Aulas de introdução de Sistemas Operacionais.ppt"
PPT
Aulas de Sistemas Operacionais .........
PPTX
Aula revisão ok
Gerência de Memória: Memória Principal
Arquitetura de computadores - memória cache parte 3
Aspectos do kernel Linux e Instalação
Gerencia de Memoria Virtual
Memoria cache princípio da localidade
Sistema Operacional - Aula003
12/03/2010 - Sistemas Operacionais Aula3
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
Linux - Um estudo de caso
Sistema de Arquivos.pdf
Memoria Virtual
resumo-conceitos-de-sistemas-operacionais.pdf
Visão Geral: Introdução
Linux e zephyr conversando no mesmo SoC
Forense Computacional com Software Livre
Sistema Operativo 3
"Aulas de introdução de Sistemas Operacionais.ppt"
Aulas de Sistemas Operacionais .........
Aula revisão ok
Anúncio

Último (20)

DOCX
SefindarfvTopografia terreno_075945.docx
PPTX
Animais domesticos apresentação power point
PPTX
Apresentação power point animais domesticos
PPTX
Saúde Coletiva APLICADA A ENFERMAGEM NO CONTE
PDF
SLIDE ------ AULA DE BACTÉRIAS DO TÉCNICO.pdf
PDF
INTRODUÇÃO A MICROBIOLOGIA - TÉCNICO .pdf
PPT
SLIDE- Morfologia da Folha (atualizado).pdf
PDF
aulaslides-bacteriologia-140803091739-phpapp01.pdf
PPTX
GEOGRAFIA BATALHÃO preparatório para o concurso da polícia militar
PPT
Aula 4 - pós e granuloaaaaaaaaaaaaaas.ppt
PPTX
Aula 2 - Sinais Vitais LUCAS POLIZZELI.pptx
PDF
Exercícios de Cristalografia e Mineralogia Sistemática 4.pdf
PPTX
Microbiologia, slides. Celulose bacteriana
PDF
7biosseguranalaboratorial-120813122204-phpapp02.pdf
PDF
O racismo em Monteiro Lobato, segundo leituras de afogadilho
PPTX
Breve apresentação sobre a vida de imre lakatos.pptx
PPTX
Continuação Separação De Misturas Heterogêneas.pptx
PDF
Hipertensão Arterial Sistêmica – Conceitos, Diagnóstico e Manejo
PPTX
710430806-Farmacologia-de-produtos-naturais-slides-1.pptx
PDF
apostila para 9ºano (conversões, velocidade, força)
SefindarfvTopografia terreno_075945.docx
Animais domesticos apresentação power point
Apresentação power point animais domesticos
Saúde Coletiva APLICADA A ENFERMAGEM NO CONTE
SLIDE ------ AULA DE BACTÉRIAS DO TÉCNICO.pdf
INTRODUÇÃO A MICROBIOLOGIA - TÉCNICO .pdf
SLIDE- Morfologia da Folha (atualizado).pdf
aulaslides-bacteriologia-140803091739-phpapp01.pdf
GEOGRAFIA BATALHÃO preparatório para o concurso da polícia militar
Aula 4 - pós e granuloaaaaaaaaaaaaaas.ppt
Aula 2 - Sinais Vitais LUCAS POLIZZELI.pptx
Exercícios de Cristalografia e Mineralogia Sistemática 4.pdf
Microbiologia, slides. Celulose bacteriana
7biosseguranalaboratorial-120813122204-phpapp02.pdf
O racismo em Monteiro Lobato, segundo leituras de afogadilho
Breve apresentação sobre a vida de imre lakatos.pptx
Continuação Separação De Misturas Heterogêneas.pptx
Hipertensão Arterial Sistêmica – Conceitos, Diagnóstico e Manejo
710430806-Farmacologia-de-produtos-naturais-slides-1.pptx
apostila para 9ºano (conversões, velocidade, força)

Avaliação dos Mecanismos de Cache em Dispositivos de Armazenamento Secundário com Discos de Estado Sólido

  • 1. AVALIAÇÃO DOS MECANISMOS DE CACHE EM DISPOSITIVOS DE ARMAZENAMENTO SECUNDÁRIO COM DISCOS DE ESTADO SÓLIDO Proposta de Dissertação de Mestrado Aluno: Leonardo Antônio dos Santos Orientador: Luiz Carlos Erpen de Bona Co-orientador: Carlos Alberto Maziero PPGInf - UFPR
  • 2. SUMÁRIO • INTRODUÇÃO • ESTRUTURAS DE ARMAZENAMENTO SECUNDÁRIO • Acesso a disco no Kernel do Linux • Estrutura de Caches no Linux • Dispositivos de Armazenamento • Redundant Array of Inexpensive Disk • ALGORITMOS DE SUBSTITUIÇÃO DE CACHE • OPT, LRU, LIRS, ARC, MQ • IMPLEMENTAÇÕES DE CACHE NO LINUX • BCACHE, DMCACHE • PROPOSTA • Objetivos, Detalhamento; • Resultados Preliminares; • Calendário PPGInf - UFPR
  • 3. INTRODUÇÃO (I) • 60 a 70: revolução da computação; • 70 a 80: era da informação; • ↑ foco no armazenamento; • Confiabilidade: precisão das informações; • Desempenho: latência e vazão; • Escalabilidade: • para milhares ou milhões de usuários. PPGInf - UFPR
  • 4. INTRODUÇÃO (II) • Hierarquia do Armazenamento de Dados • Processamento ↑ versus I/O → • Voláteis (≥ Flash) versus Não-Voláteis (≤ Flash) • Hierarquização torna-se necessária • Caches + Algoritmos de Substituição PPGInf - UFPR
  • 5. INTRODUÇÃO (III) • Memória RAM como Cache • Padrão aos SOs. • SSD como Cache • É viável? • Necessário revisitar: • Algoritmos de substituição; • Cache de primeiro nível (RAM); • Outras formas de melhoria de desempenho (RAID); • Implementações de cache de segundo nível (SSD). PPGInf - UFPR
  • 6. ACESSO A DISCO NO KERNEL DO LINUX (I) • RAW I/O • File System I/O • Direct I/O (sem cache) PPGInf - UFPR
  • 7. ACESSO A DISCO NO KERNEL DO LINUX (II) • RAW I/O • File System I/O • Direct I/O (sem cache) PPGInf - UFPR
  • 8. ACESSO A DISCO NO KERNEL DO LINUX (I) (FILESYSTEM I/O) • Interface: • ↑ usuário • ↓ file system • O VFS faz o processamento inicial das requisições; • Seguem o padrão POSIX • open, read, write, lseek • Disk Caches • File System agnostic PPGInf - UFPR
  • 9. • Interface: • ↑ VFS interface • ↓ File Systems interface • Cada File System • possui características próprias; • implementa as interfaces superiores e inferiores. ACESSO A DISCO NO KERNEL DO LINUX (II) (FILESYSTEM I/O) PPGInf - UFPR
  • 10. ACESSO A DISCO NO KERNEL DO LINUX (III) (FILESYSTEM I/O) • Interface: • ↑ i-node, offset, size • ↓ block • Mapeamento • Feito pelo File System; • De arquivos solicitados para blocos no disco; • Depende de fatores como: • tabelas de indexação • gerenciamento de espaço livre • implementação de diretórios • métodos de alocação PPGInf - UFPR
  • 11. ACESSO A DISCO NO KERNEL DO LINUX (IV) (FILESYSTEM I/O) • Interface • ↑ logical block • ↓ physical block • Abstrai detalhes dos dispositivos de bloco (físicos ou virtuais) para as camadas superiores; • LVM, RAID em software e similares são implementados nesta camada; PPGInf - UFPR
  • 12. • Sequencia (sort) os setores que serão encaminhados ao dispositivo (LBA); • Agrupa requisições (merge) de blocos adjacentes; • Implementações: • Noop • Deadline • Anticipatory • CFQ ACESSO A DISCO NO KERNEL DO LINUX (V) (FILESYSTEM I/O) PPGInf - UFPR
  • 13. • Mantém em RAM dados normalmente acessados em disco; • Existem 3 tipos: • Dentry Cache • Mapeamento em RAM utilizado pelo VFS para tradução de i-nodes • Page Cache • Composto por page frames que contêm dados pertencentes a arquivos • Buffer Cache • Área em RAM que contém dados dos blocos em disco ESTRUTURA DE CACHES NO LINUX (I) PPGInf - UFPR
  • 14. • Buffer Cache • Escrita atrasada (write-back) • Descarga dos buffers em lote com intervalos pré-definidos (30s) • Estrutura: • Buffer Headers: descreve um bloco em cache • dirty bit (blk mem ≠ blk disk) • timestamp (políticas de alocação) • Hash Table para busca dos buffer headers • {device, block_number} identificador do bloco ESTRUTURA DE CACHES NO LINUX (II) PPGInf - UFPR
  • 15. • Page Cache • Mais simples que o buffer cache • Opera sobre arquivos (read, write, mmap) • Não opera necessariamente sobre blocos adjacentes • Estrutura: • I-node Queue lista dos descritores de página de determinado arquivo • Page Hash Table para busca dos descritores de página • {i-node, offset} identificador da página ESTRUTURA DE CACHES NO LINUX (III) PPGInf - UFPR
  • 16. • A separação entre Page e Buffer Cache foi mantida somente até a versão 2.4 do Kernel, sendo unificados posteriormente; • Lista das principais operações ESTRUTURA DE CACHES NO LINUX (IV) PPGInf - UFPR
  • 17. • É um dispositivo de armazenamento secundário; • Útil para armazenamento de grandes quantidades de dados; • Não-volátil; • Composição magnética; • Possui partes mecânicas. DISPOSITIVOS DE ARMAZENAMENTO (I) HARD DISK DRIVES (HDD) PPGInf - UFPR
  • 18. • Limitações: • Tempo de posicionamento (seek time) • impacta o acesso aleatório • Velocidade de rotação (rotation time) • Barramento de dados DISPOSITIVOS DE ARMAZENAMENTO (II) HARD DISK DRIVES (HDD) PPGInf - UFPR
  • 19. • Composição eletrônica; • Baseado em memórias NAND flash; • Armazenam eletrons por tempo indefinido sem uso de energia; • Baixo consumo de energia; • Solid State: pela ausência de partes móveis; • São versões mais complexas dos SDs e CF (CompactFlash); • Melhor mídia de armazenamento que os HDDs. DISPOSITIVOS DE ARMAZENAMENTO (III) SOLID STATE DISK (SSD) PPGInf - UFPR
  • 20. DISPOSITIVOS DE ARMAZENAMENTO (IV) SOLID STATE DISK (SSD) • Operações: • Escrita: programming • Remoção: erasing • Leitura: bias-voltage • Limitações: • Leitura e escrita async • Escrita ≈2x leitura • Limite de escritas por bloco • Write amplification • Garbage Collection • Age em um limiar • Evita comprometer futuras escritas • Wear Leveling PPGInf - UFPR
  • 21. • Operações: • Escrita: programming • Remoção: erasing • Leitura: bias-voltage • Limitações: • Leitura e escrita async • Escrita ≈2x leitura • Limite de escritas por bloco • Write amplification • Garbage Collection • Age em um limiar • Evita comprometer futuras escritas • Wear Leveling DISPOSITIVOS DE ARMAZENAMENTO (V) SOLID STATE DISK (SSD) (t1) (t2) (t3) (t4) PPGInf - UFPR
  • 22. • Arranjo de discos com o objetivo de aumentar o desempenho e/ou garantir a redundância dos dados; • Desenvolvido inicialmente para melhorar o desempenho dos discos rotacionais; • aumento do paralelismo • Garante a redundância; • espelhamento dos dados RAID (I) PPGInf - UFPR
  • 23. • RAID0 • RAID1 • RAID5 RAID (II) Abordagens: • Mirroring • Striping • Parity • Hot Sparing PPGInf - UFPR
  • 24. • Tem por objetivo manter em cache dados com maior probabilidade de uso posterior; • Os principais algoritmos estudados são: • Algoritmo Ótimo (OPT) • Least Recently Used (LRU) • Low Inter-Reference Set (LIRS) • Adaptive Replacement Cache (ARC) • Multi-Queue (MQ) ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (I) PPGInf - UFPR
  • 25. • Não é factível • Baseia-se no futuro; • Serve apenas como linha de base para outras implementações (I/O hits) ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (II) OPT PPGInf - UFPR
  • 26. • Não é factível • Baseia-se no futuro; • Serve apenas como linha de base para outras implementações (I/O hits) ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (II) OPT futuro PPGInf - UFPR
  • 27. • Considera apenas recência • Baseia-se no passado e é factível; • Diversas implementações foram propostas tanto em hardware (aproximações) quanto em software; • Ruim em workloads filescaning e acesso a blocos com frequências variadas; ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (IV) LRU PPGInf - UFPR
  • 28. • Considera apenas recência • Baseia-se no passado e é factível; • Diversas implementações foram propostas tanto em hardware (aproximações) quanto em software; • Ruim em workloads filescaning e acesso a blocos com frequências variadas; ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (IV) LRU passado problema! PPGInf - UFPR
  • 29. ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (V) LIRS • Desenvolvido para cache de 1º Nível (RAM); • Busca reduzir os problemas do LRU; • IRR: Inter Reference Recency • Número de blocos acessados sem repetições entre as duas últimas referências • Mesmo os blocos com baixa recência podem ser substituídos por conta do IRR; • Não é adaptativo! PPGInf - UFPR
  • 30. ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (V) LIRS • Desenvolvido para cache de 1º Nível (RAM); • Busca reduzir os problemas do LRU; • IRR: Inter Reference Recency • Número de blocos acessados sem repetições entre as duas últimas referências • Mesmo os blocos com baixa recência podem ser substituídos por conta do IRR; • Não é adaptativo! PPGInf - UFPR
  • 31. • Desenvolvido para cache de 1º Nível (RAM); • Busca reduzir os problemas do LRU; • IRR: Inter Reference Recency • Número de blocos acessados sem repetições entre as duas últimas referências • Mesmo os blocos com baixa recência podem ser substituídos por conta do IRR; • Não é adaptativo! ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (V) LIRS HIR LIR PPGInf - UFPR
  • 32. ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (VI) ARC • Adaptável a diversos workloads • Detecta mudanças contextuais • Sem tuning manual • Considera • Recência • Frequência • Utilizado em caches de 2º nível (SSDs); • Mantém informações históricas (ghost lists); • Não conta frequências • MRU: = 1 acesso • MFU: > 1 acesso PPGInf - UFPR
  • 33. ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (VII) ARC PPGInf - UFPR
  • 34. ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (VII) ARC PPGInf - UFPR
  • 35. • Projetado para caches de 2º nível (SSD); • Identifica padrões de acesso a 2º nível como diferentes do 1º nível; • Não requer modificações no primeiro nível de cache; • Mantém blocos com diferentes frequências em diferentes filas LRU; • Informações históricas são mantidas no history buffer; • FIFO: sem overhead ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (VIII) MULTI-QUEUE PPGInf - UFPR
  • 36. • Função de alocação na cache: • k = log 2 f (f a frequência de acessos) • Ex.: o 8º acesso a um bloco de Q2 leva o bloco para Q3 • Os blocos saem da cache para o history buffer por Q0 • Queda de fila • tempos lógicos • expireTime = currentTime + lifeTime • currentTime++ a cada rodada • verifica LRU das m filas em cada acesso ALGORITMOS DE SUBSTITUIÇÃO DE CACHE (IX) MULTI-QUEUE PPGInf - UFPR
  • 37. • Implementação Linux para cache de 2º nível com SSDs; • Opera na camada de blocos (Block Layer) • File System agnostic • Cria um dispositivo virtual; • Aproveita o que há de melhor nos SSDs e HDDs de forma transparente através de mecanismos de cache; IMPLEMENTAÇÕES DE CACHE NO LINUX (I) BCACHE PPGInf - UFPR
  • 38. • COW (Copy-On-Write) • Devido a limitação de escrita dos SSDs, evita atualização dos dados; • Estrutura: • Log-structured (simples, não espacial, fácil restore) • B-tree • Algoritmo de substituição: LRU • Parametrização de: • limites de acesso sequencial (4M) IMPLEMENTAÇÕES DE CACHE NO LINUX (II) BCACHE PPGInf - UFPR
  • 39. • Opera junto ao device-mapper • mais simples, menos intrusivo; • Algoritmo de substituição: MQ • implementação mais robusta que o BCache; • Faz uso de 3 dispositivos de armazenamento; • dados • cache • metadados • Modos de operação: • write-back • write-through • pass-through IMPLEMENTAÇÕES DE CACHE NO LINUX (III) DMCACHE PPGInf - UFPR
  • 40. • Políticas de substituição: • multi-queue • cleaner (para alteração nos dispositivos) • Parametrização de: • limites de acesso sequencial • limites de acesso aleatório IMPLEMENTAÇÕES DE CACHE NO LINUX (IV) DMCACHE PPGInf - UFPR
  • 41. • Problema: grande variedade de • Implementações • Parametrizações • Algoritmos de substituição • Arranjos • Dispositivos • Cargas de trabalho (workloads) • Qual é a melhor combinação desses itens para cada workload? PROPOSTA (I) PPGInf - UFPR
  • 42. • Objetivo Geral • Uma análise experimental desses fatores no cenário do armazenamento de dados restrito ao Linux para uso em conjunto de HDDs e SSDs, em especial, BCache, DMCache e RAID. PROPOSTA (II) PPGInf - UFPR
  • 43. • Objetivos Específicos • analisar o desempenho das implementações de cache de segundo nível BCache e DMCache para o Kernel Linux; • verificar as reais vantagens e desvantagens do uso de cache frente a outras abordagens; • apontar melhores caminhos na escolha dos arranjos de discos e tecnologias; • identificar falhas e possíveis otimizações para os algoritmos ou para outros detalhes inerentes as duas abordagens. PROPOSTA (III) PPGInf - UFPR
  • 44. • Metodologia Análise experimental através de • Microbenchmarks: • Para medir o desempenho em situações isoladas; • Explicar com clareza os macrobenchmarks; • Ferramenta: • Flexible I/O (fio) • Medição: acesso sequencial e aleatório. PROPOSTA (IV) PPGInf - UFPR
  • 45. • Metodologia Análise experimental através de: • Macrobenchmarks • Para medição de desempenho em situações próximas às reais; • Simulação: acesso Webserver, Varmail, Fileserver e Oltp; • Ferramentas: • Filebench (Webserver, Fileserver, Varmail) • DBT e/ou TPCC-Uva (Oltp, TPC-C) PROPOSTA (V) PPGInf - UFPR
  • 47. Resultados Preliminares PROPOSTA (VII) SSD x HDD • Leituras sequenciais • SSD ~ 5x ↑ • Leituras aleatórias • SSD ~ 50x ↑ • Escritas sequenciais • SSD ~ 4x ↑ • Escritas aleatórias • SSD ~ 5x ↑ PPGInf - UFPR
  • 48. Resultados Preliminares PROPOSTA (VIII) HDD x Caches • Leituras sequenciais • Cache ~ HDD • Escritas sequenciais • Cache ~ HDD PPGInf - UFPR
  • 49. Resultados Preliminares PROPOSTA (VIII) HDD x Caches • Leituras aleatórias • DMCache: ↑ 15ª rodada, ~ 4x > Bcache • BCache: LRU descarta dados importantes • Escritas aleatórias • BCache: envia tudo para a cache • DMCache: é mais seletivo ↓ desempenho PPGInf - UFPR
  • 50. • Second Buffer Cache Management • Algoritmo genérico de cache 2º nível, adaptativo: MQ • Não otimizado para uso em SSDs (para webservers, NFS, CIFS, Samba) • Limitações • Traces proprietários (MS) • Caches muito pequenos (N1: 1GB, N2: 2MB) • Foco em simuladores • A Self-Tuning, Low Overhead Replacement Cache • Algoritmo adaptativo: ARC • Possui implementação para Solaris • Limitações • Testes apenas em cache de 1º Nível • Mostram apenas hit I/O • Workloads sintéticos (sem traces reais) • Caches muito pequenos • Não apresentam outras métricas: uso de CPU e memória TRABALHOS RELACIONADOS (I) PPGInf - UFPR
  • 51. • SSD Buffer Pool Extensions for Database Systems • Analisa regiões “quentes” do disco com base nos padrões de acesso e leva à cache blocos mais importantes • Limitações: • De uso especifico para bancos de dados • Testes realizados apenas sobre o banco DB2 • Flashing Up the Storage Hierarchy • Estuda o impacto do tamanho das caches, gerenciamento de metadados e fluxos de dados sobre configurações hierárquicas (RAM, SSD, HDD) • Propõe algoritmo para otimizar de ordenação dos dados hierarquicamente • Limitações • Aplicação focada em bancos de dados TRABALHOS RELACIONADOS (II) PPGInf - UFPR
  • 52. 1. Estudar as implementações de cache de 2º nível do Linux 2. Estudar a implementação de RAID do Linux 3. Estudar os benchmarks de disco (micro) e aplicação (macro) 4. Implementar a automatização dos benchmarks 5. Realizar testes e comparações dos arranjos frente a implementações de cache 6. Analisar os resultados obtidos nos testes 7. Escrever a dissertação 8. Preparar Defesa CALENDÁRIO PPGInf - UFPR