Azure Blob Storage koppelen als bestandssysteem met BlobFuse v1

Let op

In dit artikel wordt verwezen naar CentOS, een Linux-distributie die de status End Of Life (EOL) nadert. Houd rekening met uw gebruik en plan dienovereenkomstig. Zie de Richtlijnen voor het einde van de levensduur van CentOS voor meer informatie.

Belangrijk

BlobFuse2 is de nieuwste versie van BlobFuse en heeft veel belangrijke verbeteringen ten opzichte van de versie die in dit artikel wordt besproken, BlobFuse v1. Zie de lijst met verbeteringen van BlobFuse2 voor meer informatie over de verbeteringen van BlobFuse2.

BlobFuse is een stuurprogramma voor een virtueel bestandssysteem voor Azure Blob Storage. Met BlobFuse hebt u toegang tot uw bestaande blok-blobgegevens in uw opslagaccount via het Linux-bestandssysteem. BlobFuse maakt gebruik van het virtuele mapschema met de slash '/' als scheidingsteken.

Deze handleiding laat zien hoe u BlobFuse v1 gebruikt en een Blob Storage-container koppelt in Linux en toegang krijgt tot gegevens. Zie de leesmij en wiki voor meer informatie over BlobFuse v1.

Waarschuwing

BlobFuse garandeert geen 100% POSIX-naleving, omdat aanvragen worden omgezet in Blob REST API's. Naambewerkingen zijn bijvoorbeeld atomisch in POSIX, maar niet in BlobFuse. Ga naar de opslagplaats met broncode van BlobFuse voor een volledige lijst met verschillen tussen een systeemeigen bestandssysteem en BlobFuse.

BlobFuse v1 installeren in Linux

Binaire BlobFuse-bestanden zijn beschikbaar in de Microsoft-softwareopslagplaatsen voor Linux voor Ubuntu- en Debian-, SUSE-, CentOS-, Oracle Linux- en RHEL-distributies. Als u BlobFuse wilt installeren op deze distributies, configureert u een van de opslagplaatsen uit de lijst. U kunt de binaire bestanden ook bouwen vanuit broncode volgens de installatiestappen van Azure Storage als er geen binaire bestanden beschikbaar zijn voor uw distributie.

BlobFuse wordt gepubliceerd in de Linux-opslagplaats voor Ubuntu-versies: 16.04, 18.04 en 20.04, RHEL-versies: 7.5, 7.8, 7.9, 8.0, 8.1, 8.2, CentOS-versies: 7.0, 8.0, Debian-versies: 9.0, 10.0, SUSE-versie: 15, Oracle Linux 8.1. Voer deze opdracht uit om ervoor te zorgen dat u een van deze versies hebt geïmplementeerd:

cat /etc/*-release

De Microsoft-pakketopslagplaats configureren

Configureer de Linux-pakketopslagplaats voor Microsoft-producten.

Als voorbeeld van een Redhat Enterprise Linux 8-distributie:

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm

Wijzig op dezelfde manier de URL zodat .../rhel/7/... deze verwijst naar een Redhat Enterprise Linux 7-distributie.

BlobFuse v1 installeren

sudo yum install blobfuse

Voorbereiden voor montage

BlobFuse biedt systeemeigen prestaties door een tijdelijk pad in het bestandssysteem te vereisen om geopende bestanden te bufferen en in de cache op te slaan. Voor dit tijdelijke pad kiest u de meest presterende schijf of gebruikt u een ramdisk voor de beste prestaties.

Notitie

BlobFuse slaat alle geopende bestandsinhoud op in het tijdelijke pad. Zorg ervoor dat er voldoende ruimte is voor alle geopende bestanden.

(Optioneel) Een ramdisk gebruiken voor het tijdelijke pad

In het volgende voorbeeld wordt een ramdisk van 16 GB en een map voor BlobFuse gemaakt. Kies de grootte op basis van uw behoeften. Met deze ramdisk kan BlobFuse bestanden van maximaal 16 GB openen.

sudo mkdir /mnt/ramdisk
sudo mount -t tmpfs -o size=16g tmpfs /mnt/ramdisk
sudo mkdir /mnt/ramdisk/blobfusetmp
sudo chown <youruser> /mnt/ramdisk/blobfusetmp

Een SSD gebruiken als tijdelijk pad

In Azure kunt u de tijdelijke schijven (SSD) gebruiken die beschikbaar zijn op uw VM's om een buffer met lage latentie te bieden voor BlobFuse. Afhankelijk van de gebruikte inrichtingsagent wordt de tijdelijke schijf gekoppeld aan '/mnt' voor cloud-init of '/mnt/resource' voor waagent-VM's.

Zorg ervoor dat uw gebruiker toegang heeft tot het tijdelijke pad:

sudo mkdir /mnt/resource/blobfusetmp -p
sudo chown <youruser> /mnt/resource/blobfusetmp

Toegang tot uw opslagaccount autoriseren

U kunt toegang tot uw opslagaccount autoriseren met behulp van de toegangssleutel van het account, een handtekening voor gedeelde toegang, een beheerde identiteit of een service-principal. Autorisatiegegevens kunnen worden opgegeven op de opdrachtregel, in een configuratiebestand of in omgevingsvariabelen. Zie Geldige verificatie-instellingen in het leesmij-leesmij-bestand blobFuse voor meer informatie.

Stel dat u de accounttoegangssleutels autoriseert en opslaat in een configuratiebestand. Het configuratiebestand moet de volgende indeling hebben:

accountName myaccount
accountKey storageaccesskey
containerName mycontainer
authType Key

Dit accountName is de naam van uw opslagaccount en niet de volledige URL. U moet bijwerken myaccount, storageaccesskeyen mycontainer met uw opslaggegevens.

Maak dit bestand met behulp van:

sudo touch /path/to/fuse_connection.cfg

Zodra u dit bestand hebt gemaakt en bewerkt, moet u de toegang beperken, zodat andere gebruikers het niet kunnen lezen.

sudo chmod 600 /path/to/fuse_connection.cfg

Notitie

Als u het configuratiebestand in Windows hebt gemaakt, moet u dos2unix het bestand opschonen en converteren naar Unix-indeling.

Een lege map maken voor koppelen

sudo mkdir ~/mycontainer

Koppelpunt

Notitie

Raadpleeg de BlobFuse-opslagplaats voor een volledige lijst met koppelingsopties.

Als u BlobFuse wilt koppelen, voert u de volgende opdracht uit met uw gebruiker. Met deze opdracht wordt de container die is opgegeven in '/path/to/fuse_connection.cfg' gekoppeld aan de locatie '/mycontainer'.

sudo blobfuse ~/mycontainer --tmp-path=/mnt/resource/blobfusetmp  --config-file=/path/to/fuse_connection.cfg -o attr_timeout=240 -o entry_timeout=240 -o negative_timeout=120

Notitie

Als u een ADLS-account gebruikt, moet u dit opnemen --use-adls=true.

U moet nu toegang hebben tot uw blok-blobs via de reguliere bestandssysteem-API's. De gebruiker die de directory koppelt, is standaard de enige persoon die deze kan openen, waardoor de toegang wordt beveiligd. Als u toegang tot alle gebruikers wilt toestaan, kunt u koppelen via de optie -o allow_other.

sudo cd ~/mycontainer
sudo mkdir test
sudo echo "hello world" > test/blob.txt

De koppeling behouden

Zie Persistenting in de BlobFuse-wiki voor meer informatie over het behouden van de koppeling.

Functieondersteuning

Ondersteuning voor deze functie kan worden beïnvloed door het inschakelen van Data Lake Storage Gen2, het NFS-protocol (Network File System) 3.0 of het SSH File Transfer Protocol (SFTP). Als u een van deze mogelijkheden hebt ingeschakeld, raadpleegt u de ondersteuning voor Blob Storage-functies in Azure Storage-accounts om ondersteuning voor deze functie te beoordelen.

Volgende stappen