Mudanças entre as edições de "GER20706-2014-1"
Linha 153: | Linha 153: | ||
* '''A partir do código fonte''': busca-se manualmente na rede o código fonte do software desejado, que deve então ser compilado e instalado. Esta opção se aplica quando não existe o software no formato ''dpkg'', ou a versão disponível em formato ''dpkg'' foi compilada de uma forma que não atende os requisitos para seu uso em seu servidor. | * '''A partir do código fonte''': busca-se manualmente na rede o código fonte do software desejado, que deve então ser compilado e instalado. Esta opção se aplica quando não existe o software no formato ''dpkg'', ou a versão disponível em formato ''dpkg'' foi compilada de uma forma que não atende os requisitos para seu uso em seu servidor. | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
+ | |||
+ | == 18/09: RAID == | ||
+ | |||
+ | [http://en.wikipedia.org/wiki/RAID RAID (''Redundant Array of Independent Disks'')] se destina a combinar discos de forma a incrementar o desempenho de entrada e saída e, principalmente, segurança dos dados contra defeitos em discos. RAID pode ser provido via software ou hardware (melhor este último). O Linux possui implementação por software em seu kernel, e neste [http://tldp.org/HOWTO/Software-RAID-HOWTO.html HOWTO] há uma descrição resumida. | ||
+ | |||
+ | Há vários níveis RAID, que correspondem a diferentes combinações de discos e partições. São eles: | ||
+ | * '''''LINEAR''''': concatena discos ou partições, mas não provê acréscimos de desempenho, nem de segurança dos dados (pelo contrário ! se um disco falhar, perdem-se todos os dados ...). | ||
+ | * '''''RAID 0 (ou striping)''''': combina discos ou partições de forma alternada, para distribuir os acessos entre eles (aumentar desempenho). Porém, se um disco falhar perdem-se todos os dados. Requer um mínimo de dois discos. <br>[[Imagem:RAID_0.png|100px]] | ||
+ | * '''''RAID 1 (ou mirroring)''''': combina discos ou partições para espelhar dados (segurança). Requer o dobro de discos necessários para guardar os dados (ex: se há dois discos com dados, são necessários outros dois para espelhamento). Se todos os discos falharem, é possível continuar a operar usando os discos espelhados. Requer no mínimo dois discos. <br> [[Imagem:RAID_1.png|100px]] | ||
+ | * '''''RAID 4 e 5''''': combina discos ou partições para ter redundância de dados (segurança), usando um esquema baseado em paridade. Se um disco falhar, é capaz de continuar operando (porém com desempenho reduzido até que esse disco seja reposto). RAID 4 na prática não se usa, pois apresenta um gargalo no disco onde residem os blocos de paridades. Requer no mínimo três discos. <br>[[Imagem:RAID_4.png|200px]] [[Imagem:RAID_5.png|200px]] | ||
+ | * '''''RAID 6''''': combina discos ou partições para ter redundância de dados (segurança), usando um esquema baseado em paridade de forma duplicada. Isto garante que os dados se preservam mesmo que dois discos se danifiquem. Requer no mínimo quatro discos (pois há dois discos adicionais para paridades).<br>[[Imagem:RAID_6.png|200px]] | ||
+ | * '''''RAID 10''''': combina RAID 1 e RAID 0, criando um volume com espelhamento (RAID 1), e depois fazendo o ''striping'' (RAID 0). Requer no mínimo quatro discos. <br> [[Imagem:RAID_10.png|200px]] | ||
+ | * '''''RAID 01''''': combina RAID 0 e RAID 1, criando um volume com ''striping'' (RAID 0), e depois fazendo o espelhamento (RAID 1). Requer no mínimo quatro discos. <br> [[Imagem:RAID_01.png|200px]] | ||
+ | |||
+ | Criação de um volume RAID no Linux: | ||
+ | |||
+ | # Usar o comando ''mdadm --create --verbose /dev/md0 --level=NIVEL_RAID --raid-devices=NUM_PARTICOES PARTICAO_1 PARTICAO_2 ...'' | ||
+ | #*NIVEL_RAID pode ser ''linear'', ''0'', ''1'', ''4'', ''5'', ''6'', ''10'', ''mp'', ''faulty'' (mais comuns são 0, 1 e 5). | ||
+ | #*NUM_PARTICOES é a quantidade de partições usadas no volume. | ||
+ | #*As partições são identificadas com o caminho (''pathname'') do dispositivo correspondente no Linux. Ex: a primeira partição do primeiro disco SCSI ou SATA é /dev/sda1, a segunda partição desse disco é /dev/sda2, a primeira partição do segundo disco SCSI ou SATA é /dev/sdb1, e assim por diante. | ||
+ | #* /dev/md0 é o caminho do dispositivo que corresponde ao volume RAID a ser criado. O primeiro volume RAID é /dev/md0, o segundo é /dev/md1, e assim por diante. | ||
+ | # Formatar o volume RAID: ''mkfs.ext4 -j /dev/md0'' | ||
+ | # Uma vez testado o volume RAID, sua configuração pode ser salva para posterior uso: ''mdadm --detail --scan >> /etc/mdadm/mdadm.conf'' | ||
+ | #* Isto é importante para que o volume possa ser ativado automaticamente no próximo ''boot''. | ||
+ | |||
+ | Para ativar um volume já criado, basta executar ''mdadm --assemble caminho_do_volume''. Ex: ''mdadm --assemble /dev/md0'', ''mdadm --assemble /dev/md1''. | ||
+ | |||
+ | '''''Atividade:''''' | ||
+ | |||
+ | # Crie duas partições de mesmo tamanho no disco /dev/sdb. Marque-as como sendo do tipo Linux RAID (fdisk t = "fd") | ||
+ | # Crie um volume RAID nível 1 com essas partições. Formate-o e monte-o em /mnt. Qual o tamanho total dele ? | ||
+ | # Desmonte e Pare o volume existente, com ''mdadm -S /dev/md0'' | ||
+ | # Crie um volume RAID nível 0 com essas partições. Formate-o e monte-o em /mnt. Qual o tamanho total dele ? | ||
+ | # Desmonte e Pare o volume existente, com ''mdadm -S /dev/md0'' | ||
+ | # Crie um volume RAID nível 5 com essas partições. Formate-o e monte-o em /mnt. Qual o tamanho total dele ? | ||
+ | # Desmonte e Pare o volume existente, com ''mdadm -S /dev/md0'' |
Edição das 10h45min de 18 de fevereiro de 2014
Gerência de Redes: Diário de Aula 2013-2
Professor: Odilson Tadeu Valle
Encontros: 5ª feira 7h30 às 11h30
Atendimento paralelo: 4ª feira das 14h20 às 16h20. Local: Lab. de Desenvolvimento.
Cronograma de Atividades | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Referências adicionais
- Valle, Odilson Tadeu. Gerência de Redes. IFSC - Unidade São José. 2009.
- Guia Foca Linux (intermediário ou avançado)
- Demais referências contidas na página principal de GER.
Aula 01 (13/02): Apresentação da Disciplina, Processo de Boot e Instalação de Software
Apresentação da Disciplina
Roteiro |
---|
|
O boot
Roteiro |
---|
O processo de inicialização do sistema operacional, chamado de boot. Tradicionalmente no Unix System V isto se faz com a definição de níveis de execução (runlevels) e uma tabela que descreve que processos ou serviços devem existir em cada nível. Os níveis de execução são:
As distribuições Linux em geral adotam a inicialização no estilo Unix System V. No entanto, o Ubuntu usa um outro processo chamado de upstart. Esse serviço de inicialização confere maior flexibilidade e mesmo simplicidade à definição de que serviços devem ser executados. O upstart não usa o conceito de níveis de execução, mas devido à sua flexibilidade ele pode emular esse estilo de inicialização. Para o upstart, um serviço deve ser iniciado ou parado dependendo de uma combinação de eventos, sendo que um evento indica a ocorrência de uma etapa da inicialização. O upstart é implementado pelo processo init (programa /sbin/init), que é o primeiro processo criado pelo sistema operacional. Quer dizer, logo após terminar a carga e inicialização do kernel, este cria um processo que executa o programa /sbin/init. O upstart lista o subdiretório /etc/init e procura arquivos com extensão .conf. Cada arquivo desses descreve um serviço a ser controlado pelo upstart. Por exemplo, o serviço tty2 é escrito no arquivo tty2.conf: # tty2 - getty
#
# This service maintains a getty on tty2 from the point the system is
# started until it is shut down again.
start on runlevel [23]
start on runlevel [!23]
respawn
exec /sbin/getty -8 38400 tty2
Abaixo segue o significado de cada linha:
Em linhas gerais, a descrição do serviço informa quando ele deve ser ativado (start), quando deve ser parado (stop), o tipo de execução (respawn para reinício automático, ou task para uma única execução), e que ação deve ser executada para ativar o serviço (exec para executar um programa, ou script .. end script para executar uma sequência de comandos de shell). Maiores detalhes podem ser lidos na página de manual do init. Um exemplo de criação de serviço no upstart Atividade
|
Instalação de software
Roteiro |
---|
A instalação de software pode ser feita de diversas formas, dentre as quais serão destacadas três:
Exemplo de uso do apt-get:
lynx http://www.ifsc.edu.br/
Exemplo de uso:
wget ftp://ftp.cn.debian.org/ubuntu-old-releases/ubuntu/pool/main/l/lynx-cur/lynx_2.8.7pre6-1_all.deb wget ftp://mirror.linux.org.au/ubuntu/pool/main/l/lynx-cur/lynx-cur_2.8.7pre6-1_i386.deb
lynx ...
|
18/09: RAID
RAID (Redundant Array of Independent Disks) se destina a combinar discos de forma a incrementar o desempenho de entrada e saída e, principalmente, segurança dos dados contra defeitos em discos. RAID pode ser provido via software ou hardware (melhor este último). O Linux possui implementação por software em seu kernel, e neste HOWTO há uma descrição resumida.
Há vários níveis RAID, que correspondem a diferentes combinações de discos e partições. São eles:
- LINEAR: concatena discos ou partições, mas não provê acréscimos de desempenho, nem de segurança dos dados (pelo contrário ! se um disco falhar, perdem-se todos os dados ...).
- RAID 0 (ou striping): combina discos ou partições de forma alternada, para distribuir os acessos entre eles (aumentar desempenho). Porém, se um disco falhar perdem-se todos os dados. Requer um mínimo de dois discos.
- RAID 1 (ou mirroring): combina discos ou partições para espelhar dados (segurança). Requer o dobro de discos necessários para guardar os dados (ex: se há dois discos com dados, são necessários outros dois para espelhamento). Se todos os discos falharem, é possível continuar a operar usando os discos espelhados. Requer no mínimo dois discos.
- RAID 4 e 5: combina discos ou partições para ter redundância de dados (segurança), usando um esquema baseado em paridade. Se um disco falhar, é capaz de continuar operando (porém com desempenho reduzido até que esse disco seja reposto). RAID 4 na prática não se usa, pois apresenta um gargalo no disco onde residem os blocos de paridades. Requer no mínimo três discos.
- RAID 6: combina discos ou partições para ter redundância de dados (segurança), usando um esquema baseado em paridade de forma duplicada. Isto garante que os dados se preservam mesmo que dois discos se danifiquem. Requer no mínimo quatro discos (pois há dois discos adicionais para paridades).
- RAID 10: combina RAID 1 e RAID 0, criando um volume com espelhamento (RAID 1), e depois fazendo o striping (RAID 0). Requer no mínimo quatro discos.
- RAID 01: combina RAID 0 e RAID 1, criando um volume com striping (RAID 0), e depois fazendo o espelhamento (RAID 1). Requer no mínimo quatro discos.
Criação de um volume RAID no Linux:
- Usar o comando mdadm --create --verbose /dev/md0 --level=NIVEL_RAID --raid-devices=NUM_PARTICOES PARTICAO_1 PARTICAO_2 ...
- NIVEL_RAID pode ser linear, 0, 1, 4, 5, 6, 10, mp, faulty (mais comuns são 0, 1 e 5).
- NUM_PARTICOES é a quantidade de partições usadas no volume.
- As partições são identificadas com o caminho (pathname) do dispositivo correspondente no Linux. Ex: a primeira partição do primeiro disco SCSI ou SATA é /dev/sda1, a segunda partição desse disco é /dev/sda2, a primeira partição do segundo disco SCSI ou SATA é /dev/sdb1, e assim por diante.
- /dev/md0 é o caminho do dispositivo que corresponde ao volume RAID a ser criado. O primeiro volume RAID é /dev/md0, o segundo é /dev/md1, e assim por diante.
- Formatar o volume RAID: mkfs.ext4 -j /dev/md0
- Uma vez testado o volume RAID, sua configuração pode ser salva para posterior uso: mdadm --detail --scan >> /etc/mdadm/mdadm.conf
- Isto é importante para que o volume possa ser ativado automaticamente no próximo boot.
Para ativar um volume já criado, basta executar mdadm --assemble caminho_do_volume. Ex: mdadm --assemble /dev/md0, mdadm --assemble /dev/md1.
Atividade:
- Crie duas partições de mesmo tamanho no disco /dev/sdb. Marque-as como sendo do tipo Linux RAID (fdisk t = "fd")
- Crie um volume RAID nível 1 com essas partições. Formate-o e monte-o em /mnt. Qual o tamanho total dele ?
- Desmonte e Pare o volume existente, com mdadm -S /dev/md0
- Crie um volume RAID nível 0 com essas partições. Formate-o e monte-o em /mnt. Qual o tamanho total dele ?
- Desmonte e Pare o volume existente, com mdadm -S /dev/md0
- Crie um volume RAID nível 5 com essas partições. Formate-o e monte-o em /mnt. Qual o tamanho total dele ?
- Desmonte e Pare o volume existente, com mdadm -S /dev/md0