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 ferramentapartaroferece suporte à extração de arquivostarcriados no formato básico GNUtarPOSIX 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 /destinationNo 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 16example. O tarball está sendo criado no diretório /test.$partar pcf example.tar example -P 16 -C /testUsando 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
mydirnomeado conforme especificado. - Inclui
File1.txt,File2.txt,File3.txteFile4.txt. - Exclui todos os arquivos
.loge.error. - Envia a bola
.tarde/sourcedirpara/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.txtAo 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.txtPrimeiro, 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.txteFile3.txt. - Exclui os arquivos
File4.txt,.loge.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 2020ls -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.txtA opção --restore em parcp é semelhante ao uso das opções -a -r -x e -H em rsync. (Consulte rsync(1)- Página Man do Linux.) 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 socketsefifo
$parcp -P 16 --restore /source/folder/ /destinationVocê 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