Blob Storage csatlakoztatása fájlrendszerként a BlobFuse használatával

Áttekintés

Megjegyzés

Ez a cikk a BlobFuse eredeti verziójáról szól. Sok esetben egyszerűen "BlobFuse"-nak nevezik, de ebben és más cikkekben "BlobFuse v1"-nek is nevezik, hogy megkülönböztessék a BlobFuse következő generációjától, a BlobFuse2-től. A BlobFuse2 jelenleg előzetes verzióban érhető el, és nem feltétlenül alkalmas éles számítási feladatokhoz.

A BlobFuse2 fejlesztéseiről további információt a Mi az a BlobFuse2?

A BlobFuse az Azure Blob Storage virtuális fájlrendszer-illesztőprogramja. A BlobFuse lehetővé teszi a tárfiókban lévő meglévő blokkblobadatok elérését a Linux fájlrendszeren keresztül. A BlobFuse a virtuális könyvtársémát használja a perjellel (/) elválasztóként.

Ez az útmutató bemutatja, hogyan használhatja a BlobFuse-t, és hogyan csatlakoztathat Blob Storage-tárolót Linux rendszeren, és hogyan férhet hozzá az adatokhoz. Ha többet szeretne megtudni a BlobFuse szolgáltatásról, olvassa el az olvasót és a wikit.

Figyelmeztetés

A BlobFuse nem garantálja a 100%-os POSIX-megfelelőséget, mivel egyszerűen lefordítja a kéréseket Blob REST API-kká. Az átnevezési műveletek például POSIX-ben atomiak, a BlobFuse-ban azonban nem. A natív fájlrendszer és a BlobFuse közötti különbségek teljes listáját a BlobFuse forráskódtárában találja.

A BlobFuse telepítése Linux rendszeren

A BlobFuse bináris fájljai a Linuxhoz készült Microsoft szoftvertárakban érhetők el Ubuntu, Debian, SUSE, CentOS, Oracle Linux és RHEL disztribúciókhoz. A BlobFuse ezen disztribúciókra való telepítéséhez konfigurálja a listából az egyik adattárat. A bináris fájlokat a forráskódból is létrehozhatja az Azure Storage telepítési lépéseit követve, ha a disztribúcióhoz nem érhetők el bináris fájlok.

A BlobFuse az Ubuntu linuxos adattárában jelenik meg: 16.04, 18.04, és 20.04, RHELversions: 7.5, 7.8, 7.9, 8.0, 8.1, 8.2, CentOS verziók: 7.0, 8.0, Debian verziók: 9.0, 10.0, SUSE verzió: 15, OracleLinux 8.1 . Futtassa ezt a parancsot annak biztosításához, hogy telepítve van-e az alábbi verziók valamelyike:

lsb_release -a

A Microsoft-csomagtár konfigurálása

Konfigurálja a Linux-csomagtárat a Microsoft-termékekhez.

Például egy Enterprise Linux 8-disztribúción:

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

Hasonlóképpen módosítsa az URL-címet úgy, hogy .../rhel/7/... egy Enterprise Linux 7-disztribúcióra mutasson.

Egy másik példa egy Ubuntu 20.04-eloszlásra:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update

Ehhez hasonlóan módosítsa az URL-címet egy másik Ubuntu-verzióra .../ubuntu/16.04/... , vagy .../ubuntu/18.04/... hivatkozzon rá.

A BlobFuse telepítése

Ubuntu/Debian-disztribúció esetén:

sudo apt-get install blobfuse

Vállalati Linux-disztribúció esetén:

sudo yum install blobfuse

SUSE-disztribúción:

sudo zypper install blobfuse

Felkészülés a csatlakoztatásra

A BlobFuse natív teljesítményt nyújt azáltal, hogy ideiglenes elérési utat igényel a fájlrendszerben a megnyitott fájlok puffereléséhez és gyorsítótárazásához. Ehhez az ideiglenes elérési úthoz válassza ki a leginkább teljesítő lemezt, vagy használjon ramdisket a legjobb teljesítmény érdekében.

Megjegyzés

A BlobFuse az összes megnyitott fájltartalmat az ideiglenes elérési úton tárolja. Győződjön meg arról, hogy elegendő hely áll rendelkezésre az összes megnyitott fájl elhelyezéséhez.

(Nem kötelező) Ramdisk használata az ideiglenes elérési úthoz

Az alábbi példa egy 16 GB-os ramdiskot és egy BlobFuse könyvtárat hoz létre. Válassza ki a méretet az igényeinek megfelelően. Ez a ramdisk lehetővé teszi, hogy a BlobFuse legfeljebb 16 GB méretű fájlokat nyisson meg.

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

SSD használata ideiglenes elérési útként

Az Azure-ban a virtuális gépeken elérhető rövid élettartamú lemezek (SSD) használatával alacsony késésű puffert biztosíthat a BlobFuse számára. A használt kiépítési ügynöktől függően a rövid élettartamú lemez a cloud-init esetében a "/mnt" vagy a waagent virtuális gépek esetében az "/mnt/resource" meghajtóra lesz csatlakoztatva.

Győződjön meg arról, hogy a felhasználó hozzáfér az ideiglenes elérési úthoz:

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

Hozzáférés engedélyezése a tárfiókhoz

A tárfiókhoz való hozzáférést a fiók hozzáférési kulcsával, közös hozzáférésű jogosultságkóddal, felügyelt identitással vagy szolgáltatásnévvel engedélyezheti. Az engedélyezési információk a parancssorban, egy konfigurációs fájlban vagy környezeti változókban adhatók meg. Részletekért lásd: Érvényes hitelesítési beállítások a BlobFuse-olvasásban.

Tegyük fel például, hogy engedélyezi a fiók hozzáférési kulcsait, és egy konfigurációs fájlban tárolja őket. A konfigurációs fájl formátumának a következőnek kell lennie:

accountName myaccount
accountKey storageaccesskey
containerName mycontainer

Ez accountName a tárfiók neve, nem pedig a teljes URL-cím.

Hozza létre ezt a fájlt a következővel:

touch /path/to/fuse_connection.cfg

Miután létrehozta és szerkesztette ezt a fájlt, mindenképpen korlátozza a hozzáférést, hogy más felhasználók ne tudják olvasni.

chmod 600 /path/to/fuse_connection.cfg

Megjegyzés

Ha a konfigurációs fájlt Windows rendszeren hozta létre, mindenképpen futtassa a fájl dos2unix megtisztításához és Unix formátumba konvertálásához.

Üres könyvtár létrehozása csatlakoztatáshoz

mkdir ~/mycontainer

Csatlakoztatás

Megjegyzés

A csatlakoztatási lehetőségek teljes listájáért tekintse meg a BlobFuse adattárat.

A BlobFuse csatlakoztatásához futtassa a következő parancsot a felhasználóval. Ez a parancs csatlakoztatja a "/path/to/fuse_connection.cfg" helyen megadott tárolót a /mycontainer helyre.

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

Megjegyzés

Ha ADLS-fiókot használ, a következőket kell tartalmaznia --use-adls=true: .

Most már hozzá kell férnie a blokkblobokhoz a hagyományos fájlrendszer API-kkal. A címtárat csatlakoztató felhasználó az egyetlen személy, aki alapértelmezés szerint hozzáférhet, ami biztosítja a hozzáférést. Az összes felhasználó hozzáférésének engedélyezéséhez csatlakoztathatja a lehetőséget -o allow_other.

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

A csatlakoztatás megőrzése

A csatlakoztatás megőrzésének módjáról a BlobFuse wikiben található Megtartás című témakörben olvashat.

Szolgáltatások támogatása

Ennek a funkciónak a támogatását befolyásolhatja a Data Lake Storage Gen2, a Hálózati fájlrendszer (NFS) 3.0 protokoll vagy az SSH File Transfer Protocol (SFTP) engedélyezése.

Ha engedélyezte ezeket a képességeket, tekintse meg a Blob Storage szolgáltatástámogatását az Azure Storage-fiókokban a funkció támogatásának felméréséhez.

Következő lépések