no servidor temos 2 hdd de 2 TB ligados a portas sata e 1 ssd samsung 970 evo nvme M.2 (2280) de 250 GB ligado ao barramento pcie.

a ideia é utilizar os dois hdds num raid nível 1 por software com o mdadm e o ssd como cache destes.

parte do ssd será utilizado para criar a swap e através da utilização do bcache servirá como cache para os hdds no modo writethrough (as operações de escrita são passadas diretamente para o backing device - o desempenho é inferior ao modo writeback mas é mais seguro).

começaremos por criar uma partição nos hdds para a esp que deve ter pelo menos 260 MiB (https://www.ctrl.blog/entry/esp-size-guide.html) mas que o autor do gdisk sugere que seja de 550 MiB (http://www.rodsbooks.com/linux-uefi/).

no espaço restante criaremos outra partição.

seguidamente criamos dois arrays raid nível 1 com essas partições (md0 e md1).

depois a encriptação, lvm e, finalmente, o sistema de ficheiros ext4.

RAID --> LUKS --> LVM --> ext4 - para os dois hdds
LUKS --> LVM --> ext4 - para o ssd

1 - nos discos hdd:
criar uma partição de 550 MB (sda1, sdb1)
criar uma partição 1 GB (sda2, sdb2) - montar boot
criar outra com o resto do disco disponível (sda3, sdb3)

2 - criar 2 arrays raid nível1:
md0 (sda1, sdb1)
md1 (sda2,sdb2)

3 - encriptar ssd e md1

4 - criar dois vgs:
vg00 - crypt_ssd
vg01 - crypt_md1

5 - criar lvs:
swap (12gb) - vg00 - montar swap
cache (100gb) - vg00 - futura cache (bcache)
root (50gb) - vg01 - montar raiz
home (500gb) - montar home
var (500gb) - montar var

e instalar.

layout do disco

depois de arrancarmos o debian live a partir duma usb flash drive alteramos o time zone para Lisbon e os locales para LANG=pt_PT.UTF-8:
dpkg-reconfigure tzdata
dpkg-reconfigure locales

listamos os dispositivos de bloco com o comando:
lsblk

cujo resultado é:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 2G 1 loop /usr/lib/live/mount/rootfs/filesystem.squashfs
sda 8:0 0 1,8T 0 disk
sdb 8:16 0 1,8T 0 disk
sdc 8:32 1 7,5G 0 disk
├─sdc1 8:33 1 2,2G 0 part /usr/lib/live/mount/medium
└─sdc2 8:34 1 2,9M 0 part
nvme0n1 259:0 0 232,9G 0 disk

neste caso sda e sdb são os hdd's, sdc a pen, e nvme0n1 o disco ssd.

removemos quaisquer assinaturas remanescentes de sistemas de ficheiros, raid e de tabelas de partições:
wipefs -af /dev/sda
wipefs -af /dev/sdb
wipefs -af /dev/nvme0n1

criamos em /dev/sda a nova tabela de partição GPT e as partições que iremos utilizar:
parted /dev/sda mklabel gpt
parted /dev/sda mkpart primary fat32 1MiB 551MiB
parted /dev/sda set 1 esp on
parted /dev/sda mkpart primary ext4 551MiB 50GiB
parted /dev/sda mkpart primary 50GiB 100%
parted /dev/sda set 3 raid on

verificamos o resultado com:
parted /dev/sda print

que é:

Model: ATA ST2000DM005-2CW1 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 578MB 577MB fat32 primary boot, esp
2 578MB 53,7GB 53,1GB primary
3 53,7GB 2000GB 1947GB primary raid

aqui apesar de termos criado a segunda partição como ext4 o parted não apresenta porque leia-se https://bugzilla.redhat.com/show_bug.cgi?id=574780

https://www.tech-g.com/2017/08/10/bcache-how-to-setup/

https://wiki.ubuntu.com/ServerTeam/InstallOnBcache

https://www.rath.org/ssd-caching-under-linux.html

https://gist.github.com/MawKKe/caa2bbf7edcc072129d73b61ae7815fb

https://superuser.com/questions/1193290/best-order-of-raid-lvm-and-luks

https://wiki.archlinux.org/index.php/Bcache

https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_syst…

https://askubuntu.com/questions/57908/how-can-i-quickly-copy-a-gpt-part…

desencriptar dois discos distintos com a mesma palavra passe - https://unix.stackexchange.com/questions/392284/using-a-single-passphra…

Tags