A partir do Kernel Linux v2.6.31, a chamada do sistema fallocate é suportada pelos sistemas de arquivos btrfs, ext4, ocfs2 e xfs.
Você pode confirmar qual sistema de arquivos você tem com este comando (assumindo o nome do dispositivo dado acima):
file -sL /dev/xvdb
Infelizmente, parece que, em alguns casos, o armazenamento da instância é fornecido formatado em ext3
em vez de ext4
.
Supondo que seu armazenamento de instância esteja em /dev/svdb
e você queira criar um arquivo de troca em /mnt/swap
que tenha 16 GB de tamanho (imenso!), colocar isso em /etc/rc.local
fará isso acontecer toda vez na inicialização. Você deve comentar a linha para /dev/xvdb
em /etc/fstab
nesse caso, porque agora o dispositivo será montado por /etc/rc.local
tarde no processo de inicialização, em vez de antes.
umount /dev/xvdb
mkfs.ext4 /dev/xvdb
mount /dev/xvdb /mnt
fallocate -l 16GB /mnt/swap
chmod 600 /mnt/swap
mkswap /mnt/swap
swapon /mnt/swap