Buscar

Módulo 3 - Sistema de Arquivos

Prévia do material em texto

LVM
Criando grupos de volumes
Vamos considerar que possuímos dois discos: um com uma partição (/dev/sda2) de 10GB e outro com uma partição de 100GB (/dev/sdb1), ambas no formato Linux LVM. O primeiro passo é criar o volume físico para cada partição que será utilizada no LVM.
# pvcreate /dev/sda2
Physical volume “/dev/sda2” successfully created
# pvcreate /dev/sdb1
Physical volume “/dev/sdb1” successfully created
Na sequência, devemos executar o comando pvscan para identificar todos os volumes físicos disponíveis no sistema. A lista apresenta a identificação das partições, labels e seus respectivos tamanhos.
# pvscan
PV /dev/sda2 lvm2 [10GiB]
PV /dev/sdb1 lvm2 [100GiB]
Total: 2 [110,00 GiB] / in use: 0 [0 ] in no VG: 1 [110,00 GiB]
Em seguida utiliza-se o comando vgcreate para criação do grupo de volumes, é recomendado utilizar um nome sugestivo para facilitar a identificação no futuro. No nosso exemplo utilizaremos as partições /dev/sda2 e /dev/sdb1 para formar o grupo de volumes.
# vgcreate vgProducao /dev/sda2 /dev/sdb1
Volume group “vgProducao” successfully created
Para conferir as informações do volume criado utilize o comando vgdisplay.
# vgdisplay vgProducao
--- Volume group ---
VG Name vgProducao
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 110,00 GiB
PE Size 4,00 MiB
Total PE 25599
Alloc PE / Size 0 / 0
Free PE / Size 25599 / 110,00 GiB
VG UUID 68EZqv-Hms2-OVi2-Gl2p-K8fZ-LvVu-WdbgaD
Criando volumes lógicos
Para criarmos os volumes lógicos utilizamos o comando lvcreate. As principais opções do comando são:
· -L: determina o tamanho do volume
· -n: especifica o nome do volume a ser criado
# lvcreate -n lvDadosPublicos -L 5G vgProducao
Logical Volume “lvDadosPublicos” created
Após a criação do volume lógico, um novo dispositivo é adicionado ao sistema operacional, ele geralmente é criado no diretório /dev/mapper e o nome será formado pela junção do nome do grupo de volume + o nome do volume lógico, para o nosso exemplo o dispositivo foi criado com o nome vgProducao-lvDadosPublicos (/dev/mapper/vgProducao-lvDadosPublicos).
Para conferir os detalhes sobre volume lógico criado utilize o comando lvdisplay.
# lvdisplay /dev/vgProducao/lvDadosPublicos
--- Logical volume ---
LV Path /dev/vgProducao/lvDadosPublicos
LV Name lvDadosPublicos
VG Name vgProducao
LV UUID hYd7Rs-5DcT-024D-AD0D-AWQ9-LvId-Pd09Jy
LV Write Access read/write
LV Creation host, time localhost, 2017-02-14 14:51:43 -0300
LV Status available
# open
LV Size 5 GiB
Currente LE 1280
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
Uma vez criado, o volume lógico pode ser formatado e montado na árvore de diretórios do Linux. Mais detalhes sobre a criação do sistema de arquivos e as opções para montagem serão apresentadas nos próximos tópicos deste capítulo.
# mkfs.ext4 /dev/mapper/vgProducao-lvDadosPublicos
# mkdir /dados/publico
# mount /dev/mapper/vgProducao-lvDadosPublicos /dados/publico
Redimensionando volumes lógicos
Uma das principais vantagens da utilização do LVM é permitir que o administrador redimensione um volume lógico sem precisar desmontá-lo, para isso basta existir espaço disponível no grupo de volumes onde o volume lógico foi criado. Em casos onde não exista espaço suficiente no grupo de volumes o administrador pode reduzir o espaço de algum volume lógico para aumentar outro. Não é recomendado reduzir o tamanho de um volume lógico para um valor inferior ao espaço ocupado pelos dados armazenados, caso isso ocorra existirá perda de informações.
O comando lvextend permite modificar o tamanho de um volume lógico. Vamos adicionar 1 GB ao volume lógico lvDadosPublicos:
# lvextend -L +1G /dev/mapper/vgProducao-lvDadosPublicos
Após a alteração do tamanho do volume lógico é necessário redimensionar o sistema de arquivos para que a mudança seja percebida pelo sistema operacional.
# resize2fs -p /dev/mapper/vgProducao-lvDadosPublicos
Para verificar a mudança utilize o comando df
# df -h /dev/mapper/vgProducao-lvDadosPublicos
Sistema de Arquivos
Tipos de filesystems suportados
A tabela abaixo apresenta uma lista com os principais sistemas de arquivos utilizados no Linux:
	Sistema de arquivos
	Descrição
	ext4
	É o sistema de arquivos padrão da maioria das distribuições Linux. Pode suportar volumes com tamanho até 1 exabyte e arquivos com tamanho até 16 terabytes.
 
https://ext4.wiki.kernel.org/index.php/Main_Page
	ext3
	Sucessor do ext2 e foi utilizado como sistema de arquivos padrão do Linux até 2006. A principal diferença está na implementação do journaling, que consiste em um registro (log ou journal) de transações cuja finalidade é recuperar o sistema em caso de desligamento não programado.
	iso9660
	Sistema de arquivos utilizado para montar imagens de CD-ROMs conforme o padrão ISO 9660.
	msdos
	É o sistema de arquivos utilizado pelo DOS, versões antigas do Windows e OS/2. Nesse filesystem os nomes dos arquivos podem possuir até 8 caracteres precedidos de uma extensão de até 3 caracteres.
	vfat
	É uma melhoria do formato msdos que era utilizada pelo Windows 95 e NT. A principal diferença em relação ao msdos e o suporte a nomes longos para os arquivos.
	nfs
	Network Filesystem, é o sistema de arquivos utilizado para acessar discos/volumes em computadores remotos.
	ntfs
	É o substituto do sistema de arquivos vfat (vfat e fat32) nos sistemas operacionais da Microsoft. Oferece diversas melhorias como o suporte a journaling, uso de ACLs, criptografia entre outros.
	proc
	É um pseudo filesystem utilizado pelo kernel para representar, de forma estruturada, todos os processos que estão em execução no sistema. Não consome espaço em disco, essas informações ficam na memória.
 
Para mais informações utilize o comando: man proc
	smb
	Sistema de arquivos em rede com suporte ao protocolo SMB, utilizado em redes Windows.
	xfs
	Sistema de arquivos desenvolvido pela SGI com suporte a journaling. Foi integrado a versão 2.4.20 do Kernel e pode armazenar arquivos de até 8 Exbibytes - 1 byte.
 
Acesse “man fs” para ver a descrição de todos os sistema de arquivos do Linux.
http://gnulinuxbrasil.com.br/2017/06/09/fat32-ext-ext2-ext3-ext4-btrfs-qual-sistema-de-arquivos-escolher/
https://www.howtogeek.com/howto/33552/htg-explains-which-linux-file-system-should-you-choose/
Blocos e inodes
Limitações dos sistemas de arquivos:
	Filesystem
	Tamanho máximo do volume
	Tamanho máximo do arquivo
	ext3
	2 TiB
	16 GiB
	ext4
	16 TiB
	1 EiB
	xfs
	8 EiB menos 1 byte
	8 EiB menos 1 byte
	nfts
	256 TiB menos 64 KiB
	16 TiB menos 64KiB
	Raiserfs
	16 TiB
	8 TiB
	vfat
	16 GiB
	4 GiB
 
Mais informações sobre as unidades de medida GiB, TiB, EiB e etc podem ser encontradas no link: https://www.ibm.com/support/knowledgecenter/pt-br/SSQRB8/com.ibm.spectrum.si.doc/fqz0_r_units_measurement_data.html
 
 
Exemplos de utilização do comando mount
Alterando as opções de montagem sem desmontar o volume
# mount -o remount,rw /ponto/de/montagem
# mount -o remount,rw,usrquota,grpquota /home
Montando uma imagem de um cd-rom:
# mount -t iso9660 -o loop imagem.iso /ponto/de/montagem
Se adicionarmos a opção exec durante a montagem, será permitido que os arquivos binários contidos na imagem sejam executados. A opção noexec não permite a execução.
# mount -t iso9660 -o loop,exec imagem.iso /ponto/de/montagem
Montando um pendrive (/dev/sdb1) como somente leitura:
# mount -o rw  /dev/sdb1 /mnt
LABEL e UUID
O comando lsblk é utilizando para exibir as informações dos dispositivos de bloco existentes, ele lê as informações a partir do filesystem sysfs e udev e então formata o resultado de acordo com as opções escolhidas pelo usuário.
Se executado sem opções, vai exibir os dados de todos os dispositivos de bloco do sistema.
A opção -o permite customizar quais colunas desejamos que sejam exibidas, por exemplo:
# lsblk -o name,mountpoint,tran,fstype,label,size
O comando blkid também pode ser utilizado para obter asinformações dos dispositivos.
Em algumas situações pode ser necessário alterar os valores de Label ou UUID, nesse caso devermos utilizar o comando tune2fs conforme os exemplos abaixo:
 
Alterar o Label de uma partição:
# tune2fs -L novo-label /dev/sdb1
 
Alterando o UUID:
Primeiro precisamos gerar um novo UUID, para isso utilizamos o comando uuidgen.
# uuidgen
bf474773-1caf-46b5-92ae-c3ffe8a1f37a
Em seguida utilizamos o comando tune2fs para alterar o UUID da partição desejada.
# tune2fs /dev/sdb1 -U bf474773-1caf-46b5-92ae-c3ffe8a1f37a
Utilizamos novamente o comando lsblk para conferir as alterações:

Continue navegando