Usando as File Storage Parallel Tools
A suíte Parallel File Tools fornece versões paralelas de tar
, rm
e cp
. Essas ferramentas podem executar solicitações em sistemas de arquivos grandes em paralelo, maximizando o desempenho das operações de proteção de dados.
O kit de ferramentas inclui:
partar
: Use este comando para criar e extrair tarballs em paralelo.Observação
A ferramentapartar
oferece suporte à extração de arquivostar
criados no formato básico GNUtar
POSIX 1003.1-1990. Arquivos criados em outros formatos de arquivo compactado, comoPAX
, não são suportados.parrm
: Você pode usar este comando para remover recursivamente um diretório em paralelo.parcp
: Use este comando para copiar recursivamente um diretório em paralelo.
Instalando as Parallel File Tools
O conjunto de ferramentas é distribuído como RPM para o Oracle Linux, Red Hat Enterprise Linux e CentOS.
Para instalar as Parallel File Tools em uma instância do Oracle Linux:
- Abra uma janela de terminal na instância de destino.
- Digite o seguinte comando:
sudo yum install -y fss-parallel-tools
Para instalar as Parallel File Tools em uma instância do Oracle Linux 8:
- Abra uma janela de terminal na instância de destino.
- Instale o repositório do desenvolvedor do Oracle Linux, se necessário, usando o seguinte comando:
dnf install oraclelinux-developer-release-el8
- Instale as Parallel File Tools no repositório do desenvolvedor usando o seguinte comando:
dnf --enablerepo=ol8_developer install fss-parallel-tools
Para instalar as Parallel File Tools no CentOS e Red Hat 6.x:
- Abra uma janela de terminal na instância de destino.
- Digite o seguinte comando:
sudo wget http://yum.oracle.com/public-yum-ol6.repo -O /etc/yum.repos.d/public-yum-ol6.repo sudo wget http://yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle sudo yum --enablerepo=ol6_developer install fss-parallel-tools
- Abra uma janela de terminal na instância de destino.
- Digite o seguinte comando:
sudo wget http://yum.oracle.com/public-yum-ol7.repo -O /etc/yum.repos.d/public-yum-ol7.repo sudo wget http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle sudo yum --enablerepo=ol7_developer install fss-parallel-tools
Usando as Ferramentas - Exemplos Básicos
Aqui estão alguns exemplos simples de como as diversas ferramentas são comumente usadas no Oracle Cloud Infrastructure File Storage.
Neste exemplo, parcp
é usado para copiar o diretório "folder" em /source
para /destination
. A opção -P
é usada para definir o número de threads paralelos que você deseja usar.
$parcp -P 16 /source/folder /destination
No exemplo a seguir, parcp
é usado para copiar o conteúdo do diretório "folder" em /source
para /destination
. O diretório "folder" em si não é copiado.
$parcp -P 16 /source/folder/. /destination
.tar
do conteúdo do diretório especificado e o armazena como um tarball
no diretório. No exemplo abaixo, o nome do diretório que está sendo usado para criar o tarball é example
. $partar pcf example.tar example -P 16
example
. O tarball está sendo criado no diretório /test
.$partar pcf example.tar example -P 16 -C /test
Usando as Ferramentas - Exemplos Avançados
Veja alguns exemplos de como as diferentes ferramentas são usadas em cenários mais avançados.
Você pode especificar quais arquivos e pastas serão incluídos quando criar um arquivo compactado .tar
usando partar
. Digamos que você tenha um diretório semelhante a este:
[opc@example sourcedir]$ ls -l
total 180
-rw-r-----. 1 opc opc 0 Apr 15 02:55 example2020-04-15_02-55-33_217107549.error
-rw-r-----. 1 opc opc 10 Apr 15 03:18 example2020-04-15_02-55-33_217107549.log
-rw-rw-r--. 1 opc opc 12 Apr 15 03:18 example2020-04-15_03-18-13_267771997.error
-rw-rw-r--. 1 opc opc 10 Apr 15 03:18 example2020-04-15_03-18-13_267771997.log
-rwxr-xr-x. 1 opc opc 37 Nov 30 2017 File1.txt
-rwxr-xr-x. 1 opc opc 15 Dec 1 2017 File2.txt
-rwxr-xr-x. 1 opc opc 39 Nov 30 2017 File3.txt
-rwxr-xr-x. 1 opc opc 57 Dec 1 2017 File4.txt
O comando a seguir cria um arquivo compactado .tar
que:
- Contém um diretório
mydir
nomeado conforme especificado. - Inclui
File1.txt
,File2.txt
,File3.txt
eFile4.txt
. - Exclui todos os arquivos
.log
e.error
. - Envia a bola
.tar
de/sourcedir
para/mnt/destinationdir
- Extrai o arquivo compactado
.tar
[opc@example sourcedir]$ sudo partar cf - mydir --exclude '*.log*' --exclude '*.err*' | sudo partar xf - -C /mnt/destinationdir
A execução de ls -l
em /mnt/destinationdir/mytar
mostra que somente os arquivos desejados foram copiados.
[opc@example mytar]$ ls -l
total 148
-rwxr-xr-x. 1 opc opc 37 Nov 30 2017 File1.txt
-rwxr-xr-x. 1 opc opc 15 Dec 1 2017 File2.txt
-rwxr-xr-x. 1 opc opc 39 Nov 30 2017 File3.txt
-rwxr-xr-x. 1 opc opc 57 Dec 1 2017 File4.txt
Ao excluir um diretório ou arquivo do arquivo compactado, forneça apenas o nome do diretório ou arquivo. A opção --exclude
não suporta o uso de um caminho absoluto. O uso de um caminho absoluto na opção --exclude
não excluirá o diretório ou arquivos especificados do arquivo compactado .tar
. Por exemplo, se você precisar excluir um diretório chamado testing
do caminho do diretório de origem, especifique isso em um comando como o seguinte:
sudo partar pczf name_of_tar_file.tar.gz /<path_source_directory> --exclude=testing
Todos os arquivos ou diretórios que correspondam ao padrão
--exclude
no caminho do diretório de origem serão excluídos do arquivo compactado partar
.Você pode especificar quais arquivos e pastas serão incluídos quando usar parcp
para copiar de um diretório para outro. Digamos que você tenha um diretório semelhante a este:
[opc@example sourcedir]$ ls -l
total 180
-rw-r-----. 1 opc opc 0 Apr 15 02:55 example2020-04-15_02-55-33_217107549.error
-rw-r-----. 1 opc opc 10 Apr 15 03:18 example2020-04-15_02-55-33_217107549.log
-rw-rw-r--. 1 opc opc 12 Apr 15 03:18 example2020-04-15_03-18-13_267771997.error
-rw-rw-r--. 1 opc opc 10 Apr 15 03:18 example2020-04-15_03-18-13_267771997.log
-rwxr-xr-x. 1 opc opc 37 Nov 30 2017 File1.txt
-rwxr-xr-x. 1 opc opc 15 Dec 1 2017 File2.txt
-rwxr-xr-x. 1 opc opc 39 Nov 30 2017 File3.txt
-rwxr-xr-x. 1 opc opc 57 Dec 1 2017 File4.txt
Primeiro, crie um arquivo .txt
contendo uma lista de arquivos que deseja excluir. Neste exemplo, é /home/opc/list.txt
.
O seguinte comando copia o conteúdo de sourcedir
para /mnt/destinationdir
e:
- Copia
File1.txt
,File2.txt
eFile3.txt
. - Exclui os arquivos
File4.txt
,.log
e.error
, conforme listado em/home/opc/list.txt
.
[opc@example ~]$ cat /home/opc/list.txt
File4.txt
*.log*
*.err*
[opc@example ~]$ date; time sudo parcp --exclude-from=/home/opc/list.txt -P 16 --restore /sourcedir /mnt/destinationdir;
date Mon Jun 1 15:58:30 GMT 2020
real 9m55.820s
user 0m3.602s
sys 1m5.441s
Mon Jun 1 16:08:25 GMT 2020
ls -l
em /mnt/destinationdir
mostra que somente os arquivos desejados foram copiados.[opc@example destinationdir]$ ls -l
total 91
-rwxr-xr-x. 1 opc opc 37 Nov 30 2017 File1.txt
-rwxr-xr-x. 1 opc opc 15 Dec 1 2017 File2.txt
-rwxr-xr-x. 1 opc opc 39 Nov 30 2017 File3.txt
A opção --restore
em parcp
é semelhante ao uso das opções -a -r -x
e -H
em rsync
. (Consulte rsync(1)- Linux Man Page.) A opção -P
é usada para definir o número de threads paralelos que você deseja usar.
A opção restore
inclui o seguinte comportamento:
- Recursar em diretórios
- Parar nos limites do sistema de arquivos
- Preservar links físicos, symlinks, permissões, tempos de modificação, grupos, proprietários e arquivos especiais, como arquivos
named sockets
efifo
$parcp -P 16 --restore /source/folder/ /destination
Você pode usar parcp
com as opções --restore
e --delete
para sincronizar arquivos entre uma pasta de origem e uma de destino. Este é um bom substituto para usar rsync
em paralelo. Como os arquivos são adicionados ou removidos do diretório de origem, você pode executar este comando em intervalos regulares para adicionar ou remover os mesmos arquivos do diretório de destino. Você pode automatizar a sincronização usando essa opção de comando em um cron job.
sudo parcp -P 32 --restore --delete /source/folder/ /destination