Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

43
Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004

Transcript of Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

Page 1: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

Distribuição de Mídia Contínua

Projeto de Servidores

Jussara M. Almeida

Abril 2004

Page 2: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

Projeto de Servidores de Mídia Contínua

Page 3: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Métrica chave para desempenho de servidores:

– B = Largura de Banda do Servidor: # fluxos simultâneos o servidor consegue sustentar

– B = min (Brede, Bdisco)

• Barramento de memória não é normalmente o gargalo

• Brede: depende da interface de rede (e.g. 100Mbps)

• Bdisco: depende da banda efetiva que os discos sustentam,

que por sua vez depende do método de armazenamento

• Componente essencial: Subsistema de Armazenamento – Como armazenar vídeos e áudios em um dado número de discos de

forma a maximizar Bdisco?– Como armazenar vídeos e áudios com custo-benefício (max

Bdisco, min # discos)

Projeto de Servidores de Mídia Contínua

Page 4: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

Projeto de Servidores de Mídia Contínua

Page 5: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Armazenamento sequencial

– Armazena cada arquivo, inteiramente, em um disco

– Método muito simples, tradicionalmente usado

– Problema em potencial : hot spot• Grande parte da largura de banda necessária pode ser para uma pequena fração do conteúdo armazenado

– Arquivos populares demandam maior largura de banda

• Alocação da largura de banda e do espaço disponíveis no sistema estão fortemente acopladas

– Número de fluxos simultâneos para um arquivo é limitado pela largura de banda total do disco onde

ele está armazenado.

• Desbalanceamento de carga

Armazenamento de MC em Discos

Page 6: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Para max Bdisco, precisa balancear carga total entre os vários discos

• Solução natural:

– Distribuir cada arquivo pelos vários discos

• Armazenamento por faixas (striping)

– Arquivo é dividido em vários blocos e blocos são armazenados nos vários discos, em round robin

– A demanda por largura de banda para cada arquivo é distribuída entre todos os discos: balanceamento

Armazenamento de MC em Discos

Page 7: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Servidor de vídeo/áudio da Microsoft– Inclui restrições de tempo real

– Objetivo: prover grande número de fluxos CBR a baixo custo, alta disponibilidade e com grande escalabilidade

• Arquitetura distribuída– Um número de PC’s (cubs), interconectadas por uma rede ATM de alta velocidade

– Cada cub com um número de discos para armazenamento de dados e um disco para o Sistema Operacional

• Tolerância a falhas– Replicação dos dados (mirroring)

• Premissas:– Máquinas homogêneas (mesmo hardware, mesmo # discos)

– Arquivos homogêneos (mesma bitrate)

O Servidor de Videos TIGER

Page 8: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

Arquitetura TIGER

Cub 0 Cub 1 Cub n

Controlador

Switch ATM

Fluxos de saida para os clientes

Rede de baixa velocidade

Rede de alta velocidade

Page 9: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Armazenamento por faixas (striping)– Arquivo i: bloco 0 armazenado no disco 0, bloco 1 no disco 1

… bloco k no disco k …• Tamanho do bloco entre 64 KB e 1MB (fixo para o servidor)

– Se n cubs, cub i tem discos i, n+i, 2n+i, …– Balanceamento do espaço e banda para todos os usuários

• Controlador Central: – Ponto de entrada dos clientes, gerenciador – Dados dos arquivos não passam pelo controlador

• Rede ATM:– Alta velocidade– Provê garantia de qualidade de serviço– UDP sobre ATM

Arquitetura TIGER

Page 10: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Como escalonar os acessos aos discos para max Bdisco?

• Escalonador trabalha com uma agenda de slots– # slots = # fluxos simultâneos sistema suporta

– Slot i atribuído a um cliente ci que requisitou arquivo fi

• Slot i marca quando o próximo bloco de fi deverá ser enviado para ci

• Agenda compartilhada por todos cubs

• Acesso a arquivos tradicionais não é gerenciado pela agenda e pelo escalonador– São tratados quando houver banda disponível

Escalonamento de Acesso aos Discos

Page 11: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Definições:– Block play time: tempo necessário para visualizar um bloco no

bitrate do arquivo

– Block service time: tempo necessário para um disco recuperar um bloco (pior caso)

• Cada disco percorre a agenda de cima para baixo, processando um slot a cada block service time.

• Discos espaçados na agenda por um block play time

• Slot s e processado por um disco diferente a cada block play time– Slot s é processado por disco k no tempo t, se s foi processado

por disco k-1 no tempo t – block play time

Escalonamento de Acesso aos Discos

Page 12: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Figura 2 no artigo

• Discos processam slots antes do deadline para minimizar jitter– Transmissão na rede feita no deadline

• Premissas:

– Espaço suficiente para buffers no servidor

– Arquivos são longos em relação ao número de discos

• Cada arquivo tem blocos em cada disco

– Todos os fluxos têm mesmo bitrate (mesma banda)

• Simplicidade: slots tem mesmo tamanho

Escalonamento de Acesso aos Discos

Page 13: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Requisição do cliente para um arquivo é recebida pelo controlador

• Controlador envia requisição para cub onde o primeiro bloco do arquivo requisitado está armazenado.

• Cub seleciona o próximo slot livre que será processado pelo disco onde o primeiro bloco está armazenado

• Cub adiciona cliente no slot escolhido

Minimiza latência inicial do cliente

Tratamento de uma Requisição

Page 14: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Sem tratamento especial, a falha em um disco causaria interrupção de serviço para todos os clientes

• Replicação por mirroring: duas cópias do mesmo dado são armazenadas em dois discos diferentes

– Cópia primária e cópia secundária

– Sobrevive falhas em cubs e discos

– Não usa codificação com bit de paridade• Complexo de gerenciar em um sistema distribuído: atrasos• Discos são baratos

– Desvantagem: sobrecarga• Um disco deve conseguir servir a sua carga primária e a sua

carga secundária, na presença de falhas.

Tolerância a Falhas

Page 15: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Solução: espalhar cópia secundária de um bloco por d discos– Um bloco cuja cópia primária está no disco i tem sua cópia

secundária dividida em d pedaços que são armazenados nos discos i+1… i+d.

– Quando um disco falha, sua carga secundária é distribuída por d discos

• Qual o valor de d?– Maior d:

• Menos banda deve ser reservada para o caso de falhas • Maior a vulnerabilidade a catástrofes: se os discos que

armazenam duas cópias do mesmo dado falham, o sistema falha completamente.

• Menor eficiência no uso dos discos– Sugestão: d = 4 ou 8

Tolerância a Falhas

Page 16: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Localização dos blocos em cada disco– Cópias primárias: trilhas mais externas (+ rápidas)

– Cópias secundárias: trilhas mais internas (+ lentas)

• Tolerância– Falha em 1 disco ou em múltiplos discos

(somente se discos que falharam espaçados por d)– Falha em um cub

• Deteção: pings periódicos• Cada cub i contém discos i, i+n, i+2n…, n = # cubs• TIGER sobrevive a falha em cub se n d

– Nenhum disco em um cub contém cópias secundárias de um dado cuja cópia primária está em um outro disco no mesmo cub

Tolerância a Falhas

Page 17: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• TIGER network switch: reagrupa os blocos recuperados dos vários discos em um fluxo contínuo para o cliente

– Funnel: circuito virtual multi-ponto a ponto.

– Uso de um protocolo de token para garantir integridade dos dados

– Direct Memory Access para minimizar cópias

Componente de Rede do Sistema TIGER

Page 18: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Distribui armazenamento de cada video em multiplos discos– Balanceamento de carga entre os videos– Maximizar largura de banda efetiva do disco (e servidor)

• Desafio: Projetar servidor com baixo custo, max # fluxos simultaneos servidos, min latencia.

– Parametro d: quantidade de dados otima a ser recuperada em cada acesso a disco (em cada round ou ciclo)

– Dado: latencia de cada acesso e relativamente alta• Se d pequeno: latencia alta, Bdisco pequena• Se d grande: demanda por muita RAM, aumenta custo.

Disk Striping para Servidores de Video [OzRS96]

Page 19: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Proposta: metodos de striping com granularidades fina e grossa, sem inanicao

– Acesso sequencial,arquivos com mesma bitrate

• Modelo de Sistema:

– Servidor com m discos. • Cada disco: rdisk, tsettle, tseek, trot, Cd

• Memoria RAM: D, Cr

– Cada video recuperado e transmitido a taxa rdisp < rdisk

• Cada ciclo tem duracao maxima de d/rdisp

– Cada video: buffer de tamanho 2d em memoria principal

– Request list

Disk Striping

Page 20: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Unidade de striping (su) tipica:

– 1 bit, byte ou setor

• Cada leitura envolve os m discos que atuam como um disco unico com banda mrdisk

– Ex: RAID- 3

• Service list: lista com todos os videos que estao sendo recuperados

Striping com Granularidade Fina

Page 21: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Distribuicao dos dados de um video

– Video e uma sequencia de blocos de tamanho d

– Cada bloco e uma sequencia de sub-blocos de tamanho m*su

– Cada sub-bloco e espalhado pelos m discos

• As unidade de striping de um mesmo sub-bloco estao na mesma posicao em seus discos respectivos

• Unidades de striping de sub-blocos consecutivos estao armazenados uma atras da outra, no mesmo disco

Striping com Granularidade Fina

Page 22: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• No inicio de cada ciclo: servidor ordena videos na service list em funcao das posicoes no disco do bloco corrente a ser lido

– Min seeks aleatorios (algoritmo SCAN)

• Equacoes chaves: (q = # fluxos simultaneos)

Striping com Granularidade Fina

dispsettlerot

diskseek r

dtt

rm

dqt

)(2

Dqd 2

Page 23: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Qual valor de d que max q, para dados m e D?

Aumenta d, aumenta q, mas aumenta tambem demanda por memoria que e limitada por D

Calcular valor otimo de d solucionando equacoes

Striping com Granularidade Fina

Ddq

ttmrd

trd

q

settlerotdisk

seekdisp

max

max

2

2

Page 24: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Qual o numero de discos m ideal para suportar um numero pre-definido Q de fluxos simultaneos?

– Min custo total C(m) (figura 2)

C(m) = Cr 2 Q d + Cd m

Projeto de Servidores com Striping com Granularidade

Fina

)(

)2)((^^

dispdisk

dispdiskseeksettlerot

rQrm

rrmtttQdsum

sum

dd

drdisk

disp

dispdisk

CCdmdr

rQm

mrQ

rd

)(

1

Page 25: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Unidade de striping: quantidade de dados d tipicamente recuperada durante um acesso a disco (d ~ 1 Mb)– Em cada ciclo: somente um disco esta involvido na leitura de dados para

um arquivo

– Ex: RAID 5

• Armazenamento:– Cada arquivo tem tamanho multiplo de d.

– Arquivos concatenados para formar super-arquivo.

– Unidades de striping de tamanho d do super-arquivo sao armazenados em m discos, em round robin

• Disk(Vi): disco onde esta 1o bloco do arquivo Vi

• Disk(Vi) e disk(Vj) podem ser diferentes

Projeto de Servidores com Striping com Granularidade Grossa

Page 26: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Recuperacao:

– Cada disco tem uma service list

– Ao final de um cico, a service list do disco i e passada para o disco (i+1)%m• Banda disponivel circula por todos os discos

• Equacoes chaves:

Projeto de Servidores com Striping com Granularidade Grossa

dispsettlerot

diskseek r

dtt

r

dqt )(2

Dqd 2

Page 27: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Questao chave: quando inserir um video, correntemente esperando na request list para ser tratado, na service list de um disco?

• Algoritmo Simplista:

– Insere video Vi na service list do disco disk(Vi) se houver banda no disco disk(Vi) suficiente (restricao de banda valida)• Pode causar inanicao

– FIFO• Pode causar desperdicio de banda

– Algoritmo Currently Available Bandwidth (CAB)• Compromisso: nao causa inanicao, minimizando desperdicio de

banda

Projeto de Servidores com Striping com Granularidade Grossa

Page 28: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Random I/O ou RIO

• Arquivo dividido em varios blocos e cada bloco e armazenado em uma posicao aleatoria de um disco, escolhido aleatoriamente

• Motivacao:

– Desacoplar alocacao e padroes de acessos

– Permitir heterogeneidade de aplicacoes, clientes, comportamento

• VBR, interatividade, realidade virtual, multi-resolucao

– Facilita reconfiguracao do sistema

Alocacao de Dados Aleatoria

Page 29: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• “Soft” real-time systems:– Garantias estatisticas para latencia maxima– Precisa minimizar latencia maxima (tail)

• Replicacao de dados: uma fracao r dos blocos, escolhida aleatoriamente, e replicada em discos escolhidos aleatoriamente (mas diferentes)– Roteamento para disco com menor fila de requisicoes

Melhor balanceamento de carga– Minimiza latencia maxima

• Por que replicacao e nao bit de paridade?– Custo de espaco cai mais rapido do que custo de banda

• Servidores sao limitados pela banda e ha espaco disponivel– Facilidade para implementacao de arquiteturas distribuidas

com clusters de maquinas

Alocacao de Dados Aleatoria

Page 30: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Como alocacao aleatoria se compara a striping?

– Cargas interativas, heterogeneas: deve ser melhor (?)

– Mas e para acesso sequencial a videos CBR????

• Neste caso, pode-se imaginar que striping possa ser significativamente melhor, ja que este metodo explora exatamente este tipo de trafego.

• Comparacao com cargas sequenciais para videos CBR: favorecer striping

Alocacao aleatoria vs. Striping

Page 31: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Granularidade grossa: blocos dos arquivos armazenados em D discos consecutivos, em round robin

• Recuperacao de dados em ciclos de duracao fixa T, que e funcao da carga e de caracteristicas do sistema de I/O– T tem que ser super-estimado (ociosidade dos

discos)– Alocacao aleatoria nao e baseada em ciclos de

duracao fixa e acessos aos discos nao sao sincronizados.

• Duracao do ciclo determina numero maximo de blocos lidos por disco, o que limita numero de fluxos por disco (Nd)

Striping

Page 32: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Banda disponivel percorre todos os discos, em ciclo.– Novo fluxo e admitido sempre que houver pelo

menos um disco com banda suficiente livre

– Latencia: tempo que a banda disponivel gasta para circular ate o disco onde o primeiro bloco do arquivo esta armazenado

• Numero total de fluxos N = Nd*D– Striping: numero total de fluxos e multiplo do

numero de discos.

– Alocacao Aleatoria: numero de fluxos por disco pode nao ser inteiro

Striping

Page 33: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Modelo de disco detalhado incluindo:

– Componentes de desempenho do disco : seek, latencia, settle, taxa de transferencia pra cada trilha

– Escalonamento com algoritmo SCAN

– Atrasos no barramento SCSI

– Atrasos na chamada de sistemas

• Modelo calibrado para Seagate Barracuda ST15150W a partir de manual e experimentos reais com o disco

Avaliacao de Striping

Page 34: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Distribuicao do tempo de leitura de bloco (Fig. 3)

– Validacao do modelo com disco real

– Inclusao de garantias estatisticas para o atraso maximo, o que determina o tempo de ciclo T

• Probabilidade Pmiss= 10-6 de uma requisicao nao ser servida porque ciclo estourou T (alguns blocos nao sao lidos)

– Estimar T com base em garantias estatisticas leva a melhor desempenho do disco do que escolher pior caso.• Tempo medio pra tratar 10 requisicoes, bloco 128KB: Tavg = 319

ms

• Pior caso de tempo de leitura: Tpior = 447 ms -> na media, disco ocioso 29% do tempo

• Com garantias estatisticas (Pmiss= 10-6 ): Tstat = 373 ms -> na media, disco ocioso por somente 14% do tempo

Avaliacao de Striping

Page 35: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Prototipo e simulacao

• Avaliacao com fluxos CBR com bitrate fixa

– Somente trafego agregado importa (Fig 4)

• Arquitetura do Simulador (Fig 5)

– Fila de servicos em cada disco: FIFO

• Minimiza variancia do tempo de leitura

• SCAN pode ser melhor (analise favorece striping)

– Tempo de leitura de bloco obtido a partir da PDF

• Validacao a partir de experimentos com discos reais (Tabela 3, Fig 6)

Avaliacao de Alocacao Aleatoria

Page 36: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Avaliacao com diferentes tamanhos de blocos (curvas normalizadas na Fig 7)

– Desempenho relativo e insensivel a tamaho do bloco

– Desempenho tambem insensivel a # discos, para # discos grande (> 7)

– Resultados para um tamanho de bloco e numero de discos podem ser usados para prever desempenho para outros valores dos mesmos parametros.

Avaliacao de Alocacao Aleatoria

Page 37: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Numero maximo de fluxos?

– Para cada fluxo: um buffer circular, com nb 2 blocos, cada um com tamanho B• Escalonamento nao e baseado em ciclos

• Buffer contem blocos bi, bi+1… bi+nb-1

– Quando bloco bi esta sendo enviado para cliente

• Espaco do bloco bi usado para armazenar bloco bi+nb

– Bloco bi+nb tem que ser lido do disco para memoria antes que cliente precise do dado

• Isto e: enquanto cliente consome blocos bi+1… bi+nb-1

Avaliacao de Alocacao Aleatoria

Page 38: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Numero maximo de fluxos?

– Se bitrate e Rs: tempo para consumir cada bloco e B/Rs

– Tempo de leitura de um bloco tem que ser entao limitado por DB = B/Rs * (nb-1)

– Dado Db, calcula carga maxima LD por disco usando curvas da Fig 7, usando valores absolutos da Tab 3

– Numero de fluxos por disco = LD/Rs

Avaliacao de Alocacao Aleatoria

Page 39: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Numero maximo de fluxos por disco em funcao do tamanho do bloco (Fig 8)

– # fluxos aumenta com tamanho do bloco

– RIO, nb=2, sem replicacao: aprox. mesmo # fluxos que striping com Tpior

– If nb 4 ou r 0.25:

• RIO and striping com Tstat equivalentes para B pequeno

• RIO melhor que striping com Tstat para B grande

Striping vs. Alocacao Aleatoria

Page 40: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Mais espaco (buffer maior ou replicacao) leva a maior custo para RIO: Comparacao justa?

• Numero maximo de fluxos em funcao do tamanho do buffer de RAM por fluxo (Fig 9)– Se r >= 0.25 ou buffer maior que 3.5 MB por fluxo: RIO superior a striping

– Se r = 0 e buffer pequeno, striping e superior (ate 10%)

Se buffer pequeno, melhor maximizar tamanho do bloco: RIO usa nb = 2, striping ligeiramente melhor

Se buffer grande, desempenho pouco sensivel a tamanho do bloco: RIO usa nb > 2 o que leva a melhor desempenho.

• Conclusao: usando mesmo quantidade de espaco em memoria, RIO e preferivel a striping

Striping vs. Alocacao Aleatoria

Page 41: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Justificativa pra replicacao:

– Se servidor e limitado por espaco: ha banda extra, desempenho nao e critico, usa r= 0

– Se servidor limitado por banda: tem espaco disponivel para replicacao

– Custo de espaco cai mais rapido que custo de banda

– Striping nao leva vantagem com replicacao: carga ja esta balanceada entre discos

Striping vs. Alocacao Aleatoria

Page 42: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• E quanto a latencia inicial SL?

– SL: intervalo de tempo entre instante em que o servidor admitiu um novo fluxo e instante em que video comeca a ser transmitido para cliente

– Limitar tamanho do buffer BF pela latencia desejada

• Striping: SLmax = D * B/RS + B/RS = (D+1) * BF/2RS

– Latencia aumenta linearmente com numero de discos

• RIO: SLmax = nb * B/RS = BF/RS

– Latencia independente do numero de discos

• RIO suporta maior numero de fluxos simultaneos para uma dada latencia maxima que striping (Fig 10)

Striping vs. Alocacao Aleatoria

Page 43: Distribuição de Mídia Contínua Projeto de Servidores Jussara M. Almeida Abril 2004.

• Por que striping nao e superior a RIO para acessos sequenciais a fluxos CBR?

– Striping:• Ciclos com duracao constante sincronizados com todos os discos

– Tpior ou Tstat: ociosidade do disco

• # fluxos por disco inteiro: desperdicio de banda

– Alocacao aleatoria:• Discos nao tem que estar sincronizados para iniciar o

processamento de novo bloco: min ociosidade

• # fluxos por disco pode nao ser inteiro: max utilizacao de banda

Striping vs. Alocacao Aleatoria: Conclusao