PROJETO de
Cátia Ledesma& Diogo Gomes
Vídeo On-Demand
Leiria, 21 de julho de 2014
Orientação de Carlos Antunes
REDE IP
PROJETO VÍDEO ON-DEMAND• Introdução• Estado da arte
• Tecnologias de suporte• Tecnologias de distribuição
• Arquitetura• Testador• Demonstrador• Resultados• Conclusão
Introdução
• Crescimento da distribuição de recursos multimédia em larga escala sobre IP;
• Necessidades de fiabilidade dos serviços prestados;
• Necessidade de preservar os direitos de autor;• Diversificados tipos de clientes e respetivos suportes
utilizados (hardware e comunicações);
• Disponibilidade básica: indisponível 9h a 4dias /ano• Alta disponibilidade: indisponível 5m a 1h /ano• Disponibilidade contínua: indisponível 0m /ano
Mecanismos para Alta-Disponibilidade• Replicação• Redundância• Balanceamento• Agregação
Points of failure: • Falhas de hardware, software• Sobrecarga de pedidos
Disponibilidade = MTTF (MTTF + MTTR)
Estado da Arte – Tecnologias de Suporte – Alta Disponibilidade
PROJETO Vídeo On-Demand
ARQUITETURAS DE REDE• Node externo único (NAT/ IP-virtual, balanceamento)• Multinode / não dedicado (todos os nodes acessíveis)
ARQUITETURAS DE SISTEMA• Armazenamento local sincronizado (todos com disco, rsync)• Armazenamento local não sincronizado• NFS root (armazenamento único partilhado em rede)• PXE (ambiente de pré-execução, SO servidor por rede)
ARQUITETURAS DE SINCRONISMO• Scripts batch• Agenda preemptiva/migrações• Controlo minucioso
CLUSTERS
Estado da Arte – Tecnologias de Suporte - Conceitos de Cluster
PROJETO Vídeo On-Demand
1. Cliente faz um DHCP discover com tags PXE2. Servidor DHCP oferece IP dinâmico e indicações PXE para o serviço TFTP3. Cliente faz pedido do ficheiro de boot ao servidor TFTP4. Servidor TFTP envia ficheiro ao cliente5. Cliente arranca com o ficheiro de boot com a configuração do acesso a uma
partilha em rede onde se encontram os restantes ficheiros necessários do sistema
Ambiente de Pré-Execução - PXE (Preload eXecution Environment)
Estado da Arte – Tecnologias de Suporte - Conceitos de Cluster
PROJETO Vídeo On-Demand
Estado da Arte – Tecnologias de Suporte - Conceitos de Cluster
Comunicações de cluster (messaging)
Afiliação – Quorum – Ativo/Passivo
PROJETO Vídeo On-Demand
Cluster de Armazenamento
Replicação de objetos Replicação de blocos
RsyncGlusterFS
Ceph
DRBDOCFS2GFS2
Agregação de unidades físicas LVM
Estado da Arte – Tecnologias de Suporte - Conceitos de Cluster
PROJETO Vídeo On-Demand
Estado da Arte – Tecnologias de Distribuição Emissões
• TiposUnicast, Multicast, Broadcast
• Protocolos TCP, UDP, RTP, RTSP, RTCP HTTP (HLS, Mpeg-Dash), RTMP
• Software Darwin, Flumotion, Helix, VLC, Ffserver
Estado da Arte – Tecnologias de Distribuição
Arquitetura de Streaming
RedundânciaReplicação
Balanceamento
Serviços
Armazenamento
Arquitetura – Clusters – Alta disponibilidade
PROJETO Vídeo On-Demand
Alta Disponibilidade
Arquitetura – Clusters – Serviços e Processamento
PROJETO Vídeo On-Demand
Node de Serviços e Processamento
Node de Serviços e Processamento
Node de Serviços e Processamento
ControladorBalanceador
Alta-disponibilidade
StandbyAtivo
Cluster de Serviços e Processamento
Cliente
Cluster de Armazenamento
Alta-disponibilidade de Rede
Arquitetura – Clusters – Armazenamento
PROJETO Vídeo On-Demand
Node de Armazenamento Node de ArmazenamentoReplicação
Unidades físicas de armazenamento
Unidades físicas de armazenamento
Cluster de Armazenamento
Cluster de Serviços
Alta-disponibilidade de Rede
PXEControlador
Alta-disponibilidadeBalanceador
LVMLogical Volume Manager
DRBDDistributed Replicated Block Device
OCFS2Oracle Cluster File System V2
DLMDistributed Lock Manager
PACEMAKERCluster Resource Manager
CorosyncCluster Messaging
Escalabilidade física do armazenamento Replicação por bloco de dados em rede
Redundância de sistema de ficheiros Consistência do sistema de ficheiros
Gestor de recursos no cluster Comunicações de cluster
Modelo Testador - Armazenamento
PROJETO Vídeo On-Demand
KerrighedSistema Operativo SSI / SMP
SSISingle System Image
Modelo Testador – Processamento SSI
PROJETO Vídeo On-Demand
KerrighedSistema Operativo SSI / SMP
SMPSymmetric Multiprocessing
Modelo Testador – Processamento SMP
PROJETO Vídeo On-Demand
Unidades de armazenamento:• LVM• DRBD• EXT4 & OCFS2
Modelo Testador – Esquema
LVM
Disco 1 Disco 2
LVM
Disco 1 Disco 2
EXT4+
OCFS2
DRBD
NFS
Imagem de Sistema
Operativo
IP’s Virtuais
Ficheiros VideoDNSMasq
DHCP
Kernel Linux
TFTPPXE
IP Pools
VLCFFServer Scripts / Web Page
IP Virtual
Cluster Armazenamento:• DHCP pools:
PXE + POOL HOST-ONLY• DADOS (NFS)• S.O. KERRIGHED (NFS)• Kernel Linux (TFTP)• Pacemaker IP’s virtuais
TFTP + Kerrighed + DADOS + OCFS2
Rede HOST-ONLY
Rede PXE
Cluster Serviços:• NGINX (HTTP/RTMP)• VLC+FFmpeg (Streaming e Encoding)• Kerrighed (Processamento distribuido)
PROJETO Vídeo On-Demand
Pacemaker
Armazenamento
Lv_1dadossdb
sdc
sdd
sde
sdf
sdg
Lv_2dados
Lv_4dados
Lv_3dados
vg_1dados
vg_2dados
vg_4dados
vg_3dados
HDVolume group Logical volume
LVMdevice
/dev/drbd0
/dev/drbd1
/dev/drbd2
/dev/drbd3
DRBD
R0
R1
R2
R3
PACEMAKERCluster Armazenamento
DADOS
DRBD
R0
R1
R2
R3
Modo
Prim/Sec
Prim/Sec
Prim/Sec
Dual Prim
PXE
NFS
OCFS2
Virtual IP’s
192.168.100.110
192.168.100.111
192.168.100.112
192.168.100.113
Cluster de Serviços
192.168.100.0/24
/NFSROOT/kerrighed
/TFTP
/OCFS2
/DADOS
Mount File System
Ext4
Ext4
Ext4
OCFS2
DRBD
Resource
R0
R1
R2
R3
DNSMASQ
DHCP TFTP
NFS
192.
168.
56.0
/24
Pacemaker
DRBDFile System’s
DNSMasqNFS
Virtual IP’s
Modelo Testador – Esquema
PROJETO Vídeo On-Demand
Rede PXE
Rede
Hos
t-O
nly
Linux Cluster Management ConsoleGUI para Pacemaker
• Primitive• Clone• Master/Slave• Group• Colocation• Order
Modelo Testador – Gestão do Cluster
PACEMAKER
PROJETO Vídeo On-Demand
Modelo Testador – Esquema
LeituraBalanceamento
EscritaReplicação
Envio de Vídeo• RTMP• WEBCAM• Multi-sessão• Multi-emisão
Streaming de Vídeo• VOD (Unicast)• Adaptativo (Unicast)• TV-Playlist (Multicast)
Cluster de Armazenamento
Cluster de Serviços e Processamento
PROJETO Vídeo On-Demand
Demonstrador– Entrada de Stream por RTMP com autenticação
PHPauth
FFMPEG
NGINX• RTMP• Porta 12345• Application auth• HLS on
PROJETO Vídeo On-Demand
HTTP GET
rtmp://192.168.56.51:12345/auth/ok?user=vod&pass=ubuntu
user=vod&pass=ubuntu
Autenticação válida
NGINX• HTTP• HLS
HTTP POST
1. Node da emissão a visualizar2. Ordem de gravação
Stream HLS
Testador - VLCch1 vod unicastch2 canal unicastch3 canal unicast com transcodingch4 canal multicast com agendamentoch5 e ch6 canal multistreamingch7 multicast (fonte externa)
Testador - AvserverTipo I : stream
Tipo II : feed
Demonstrador
PLAYLIST
Converter Hls
Resultados
mpg -uni...
avi -
unicast
mpg - m
ult...
avi -
multi...
6600tan28a5660
6600tan19a5660
6600tan10a5660
6600tan1a5660
6600tan21a5660
6600tan12a5660
perdas 1 clienteperdas 4 clientes
mpg - unicast avi - unicast mpg - multicast avi - multicast6600tan28a5660
6600tan4a5660
6600tan9a5660
6600tan14a5660
6600tan19a5660
6600tan24a5660
perdas 1 cliente
perdas 4 clientes
VLC
Avserver
Resultados – Cluster de serviços e processamento
PROJETO Vídeo On-Demand
Processamento
Alta-disponibilidade Multicast Unicast RTMP
SERVIÇOS Sim Não Sim
ARMAZENAMENTO Sim Sim Sim
Serviços
Conclusões• Objetivos atingidos
• Arquitetura• Soluções de disponibilização de conteúdos
• Dificuldades de implementação das soluções de distribuição open source
• Enorme quantidade de conhecimentos adquiridos na implementação dos clusters
• Inúmeras contradições respeitante às codificações e valores associados
Top Related