O primeiro passo será criar um bucket no Object Storage do OCI. Para isso deve-se navegar no menu principal do OCI, Object Storage & Archive Storage e selecionando Buckets. Depois clicar em create bucket.
Neste exemplo será criado um bucket chamado s3fsbucket no compartiment lamim.
Feita a criação do bucket, devemos clicar nele para acessar as informações do bucket name e namespace, que serão utilizados no arquivo de configuração do s3fsbucket.
Allow group [group_name] to read buckets in compartment [nome_do_compartment] Allow group [group_name] to manage objects in compartment [nome_do_compartment]
Agora iremos instalar o s3fs-fuse. O s3fs-fuse é um aplicativo que permite montar buckets da AWS. Como o Object Storage do OCI é compatível com as APIs do S3, podemos utiliza-lo sem problemas e necessidade de configurações adicionais.
Para poder instar o aplicativo via yum, basta editar o arquivo /etc/yum.repos.d/public-yum-ol7.repo procurando por ol7_developer_EPEL e alterar o parâmetro enabled=0 para 1. Caso o yum não esteja configurado, o artigo a seguir pode ajudar: artigo.
[ol7_developer_EPEL] name=Oracle Linux $releasever Development Packages ($basearch) baseurl=https://yum.oracle.com/repo/OracleLinux/OL7/developer_EPEL/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1enabled=1
Agora basta executar um yum install s3fs-fuse.
[root@lamimdb /]# yum install s3fs-fuse Loaded plugins: versionlock ol7_UEKR5 | 3.0 kB 00:00:00 ol7_developer_EPEL | 3.6 kB 00:00:00 ol7_latest | 3.6 kB 00:00:00 (1/8): ol7_developer_EPEL/x86_64/group_gz | 88 kB 00:00:00 (2/8): ol7_UEKR5/x86_64/updateinfo | 335 kB 00:00:00 (3/8): ol7_latest/x86_64/updateinfo | 3.5 MB 00:00:00 (4/8): ol7_developer_EPEL/x86_64/primary_db | 16 MB 00:00:00 (5/8): ol7_developer_EPEL/x86_64/updateinfo | 819 kB 00:00:00 (6/8): ol7_latest/x86_64/group_gz | 136 kB 00:00:00 (7/8): ol7_latest/x86_64/primary_db | 43 MB 00:00:00 (8/8): ol7_UEKR5/x86_64/primary_db | 61 MB 00:00:01 Excluding 95 updates due to versionlock (use "yum versionlock status" to show them) Resolving Dependencies --> Running transaction check ---> Package s3fs-fuse.x86_64 0:1.91-1.el7 will be installed --> Processing Dependency: fuse >= 2.8.4 for package: s3fs-fuse-1.91-1.el7.x86_64 --> Running transaction check ---> Package fuse.x86_64 0:2.9.4-1.0.9.el7 will be installed --> Finished Dependency Resolution --> Finding unneeded leftover dependencies Found and removing 0 unneeded dependencies Dependencies Resolved ======================================================================================================================================================================== Package Arch Version Repository Size ======================================================================================================================================================================== Installing: s3fs-fuse x86_64 1.91-1.el7 ol7_developer_EPEL 257 k Installing for dependencies: fuse x86_64 2.9.4-1.0.9.el7 ol7_latest 88 k Transaction Summary ======================================================================================================================================================================== Install 1 Package (+1 Dependent package) Total download size: 345 k Installed size: 860 k Is this ok [y/d/N]: y Downloading packages: (1/2): fuse-2.9.4-1.0.9.el7.x86_64.rpm | 88 kB 00:00:00 (2/2): s3fs-fuse-1.91-1.el7.x86_64.rpm | 257 kB 00:00:00 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Total 1.4 MB/s | 345 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Warning: RPMDB altered outside of yum. Installing : fuse-2.9.4-1.0.9.el7.x86_64 1/2 Installing : s3fs-fuse-1.91-1.el7.x86_64 2/2 Verifying : s3fs-fuse-1.91-1.el7.x86_64 1/2 Verifying : fuse-2.9.4-1.0.9.el7.x86_64 2/2 Installed: s3fs-fuse.x86_64 0:1.91-1.el7 Dependency Installed: fuse.x86_64 0:2.9.4-1.0.9.el7 Complete! [root@lamimdb /]#
[root@lamimdb ~]# [root@lamimdb ~]# chmod +x /usr/bin/fusermount [root@lamimdb ~]# [root@lamimdb ~]# mkdir /s3fsfuse [root@lamimdb ~]# cat /s3fsfuse/.s3fsfuse.key [root@lamimdb ~]# ACCESS_KEY_ID:SECRET_ACCESS_KEY
Ajuste der permissão do arquivo.
[root@lamimdb ~]# [root@lamimdb ~]# chmod 600 /s3fsfuse/.s3fsfuse.key [root@lamimdb ~]#
[root@lamimdb ~]# mkdir /mnt/ocibucket [root@lamimdb ~]#
s3fs [NOME_DO_BUCKET] [DIRETORIO_MONTAGEM] -o endpoint=[REGIAO_OCI] -o passwd_file=/home/opc/.passwd-s3fs -o url=https://[NAMESPACE].compat.objectstorage.[REGION_IDENTIFIER].oraclecloud.com/ -onomultipart -o use_path_request_style -o allow_other
[root@lamimdb ~]# df -h /mnt/ocibucket Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg00-root 9.6G 2.9G 6.3G 32% / [root@lamimdb ~]# [root@lamimdb ~]# s3fs s3fsbucket /mnt/ocibucket -o endpoint=sa-saopaulo-1 -o passwd_file=/s3fsfuse/.s3fsfuse.key -o url=https://gr...srp.compat.objectstorage.sa-saopaulo-1.oraclecloud.com/ -onomultipart -o use_path_request_style -o allow_other [root@lamimdb ~]# [root@lamimdb ~]# df -h /mnt/ocibucket Filesystem Size Used Avail Use% Mounted on s3fs 16E 0 16E 0% /mnt/ocibucket [root@lamimdb ~]#
Estarei criando um arquivo para validar a criação do mesmo no bucket.
[root@lamimdb ~]# [root@lamimdb ~]# echo "teste de gravação no bucket do OCI" > /mnt/ocibucket/lamimteste.txt [root@lamimdb ~]#
Uma copia de um arquivo de 10G para esta unidade montada levou 56 segundos a uma taxa de 38,2 MB/s. Para validar a taxa de transferência foi usado o comando dd para coletar as métricas.
time dd if=/dev/zero of=/mnt/ocibucket/testelamim.img bs=10G count=1 oflag=dsync
O teste acima foi realizado com uma VM.Standard.E4.Flex com 1 OCPU. Posteriormente aumentei para 4 OCPUs e executei novamente o teste e para validar se o shape influenciava na performance com o object storage. Porém o resultado teve muito pouca diferença.
Por fim será configurado o fstab para que a unidade /mnt/ocibucket seja montada automaticamente, adicionando ao arquivo /etc/fstab o comando abaixo:
s3fs [DIRETORIO_MONTAGEM] fuse.s3fs _netdev,allow_other,bucket=[NOME_DO_BUCKET],endpoint=[REGIAO_OCI],use_path_request_style,use_cache=/tmp/cache,passwd_file=[ARQUIVO_DE_CREDENCIAIS],url=https://[NAMESPACE].compat.objectstorage.[REGION_IDENTIFIER].oraclecloud.com/ 0 2
Fonte: Oracle Cloud Infrastructure - How to Mount an ObjectStorage Bucket as Filesystem in Oracle Linux 7 (Doc ID 2577407.1)
Comentários
Postar um comentário