BlobFuse2 ile Linux'ta Azure Blob Depolama kapsayıcısı bağlama

Dikkat

Bu makalede, Kullanım Süresi Sonu (EOL) durumuna yakın bir Linux dağıtımı olan CentOS'a başvuruda bulunur. Lütfen kullanımınızı göz önünde bulundurun ve uygun şekilde planlayın. Daha fazla bilgi için bkz . CentOS Kullanım Süresi Sonu kılavuzu.

Bu makalede BlobFuse2'yi yükleme ve yapılandırma, Azure blob kapsayıcısı bağlama ve kapsayıcıdaki verilere erişme adımları gösterilmektedir. Temel adımlar şunlardır:

BlobFuse2'yi yükleme

BlobFuse2'yi yapılandırma

Blob kapsayıcısı bağlama

Verilere erişme

BlobFuse2'yi yükleme

BlobFuse2'yi yüklemek için iki seçeneğiniz vardır:

  • Linux için Microsoft yazılım depolarından BlobFuse2'yi yükleme - Tercih edilen yükleme yöntemi budur. BlobFuse2, çeşitli yaygın Linux dağıtımları için depolarda kullanılabilir.
  • Kaynak koddan BlobFuse2 ikili dosyalarını oluşturma - Dağıtımınız için depolarda kullanılamıyorsa kaynak koddan BlobFuse2 ikili dosyalarını oluşturabilirsiniz.

Seçenek 1: Linux için Microsoft yazılım depolarından BlobFuse2'yi yükleme

Desteklenen dağıtımları görmek için bkz . BlobFuse2 sürümleri.

Libfuse desteği hakkında bilgi için bkz . BlobFuse2 BENİOKU.

Linux sürümünüzü denetlemek için aşağıdaki komutu çalıştırın:

cat /etc/*-release

Dağıtımınız için kullanılabilir ikili dosya yoksa, Seçenek 2: Kaynak koddan ikili dosyalar oluşturabilirsiniz.

Depolardan BlobFuse2 yüklemek için:

Microsoft paket deposunu yapılandırma

BlobFuse2'yi yükleme

Microsoft paket deposunu yapılandırma

Microsoft Ürünleri için Linux Paket Deposunu yapılandırın.

Örnek olarak, Redhat Enterprise Linux 8 dağıtımında:

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

Benzer şekilde, URL'yi .../rhel/7/... Redhat Enterprise Linux 7 dağıtımına işaret etmek için değiştirin.

BlobFuse2'yi yükleme

sudo yum install blobfuse2

Seçenek 2: Kaynak koddan ikili dosyaları oluşturma

Kaynak koddan BlobFuse2 ikili dosyalarını oluşturmak için:

  1. Bağımlılıkları yükleyin:

    1. Git'i yükleme:

      sudo apt-get install git
      
    2. BlobFuse2 bağımlılıklarını yükleyin.

      Ubuntu'da:

      sudo apt-get install libfuse3-dev fuse3 -y
      
  2. Depoyu kopyalayın:

    sudo git clone https://github.com/Azure/azure-storage-fuse/
    sudo cd ./azure-storage-fuse
    sudo git checkout main
    
  3. BlobFuse2 derlemesi:

    go get
    go build -tags=fuse3
    

İpucu

Go'yı yüklemeniz gerekiyorsa bkz . Go'yi indirme ve yükleme.

BlobFuse2'yi yapılandırma

BlobFuse2'yi çeşitli ayarları kullanarak yapılandırabilirsiniz. Tipik ayarlardan bazıları şunlardır:

  • Günlüğe kaydetme konumu ve seçenekleri
  • Önbelleğe alma için geçici dosya yolu
  • Bağlanacak Azure depolama hesabı ve blob kapsayıcısı hakkında bilgi

Ayarlar bir YAML yapılandırma dosyasında, ortam değişkenleri kullanılarak veya BlobFuse2 komutlarına geçirilen parametreler olarak yapılandırılabilir. Tercih edilen yöntem yapılandırma dosyasını kullanmaktır.

BlobFuse2 yapılandırma parametrelerinin her biri ve bunların nasıl belirtileceğinin ayrıntıları için şu makalelere bakın:

BlobFuse2'yi bağlama için yapılandırmak için:

  1. Önbelleğe almayı yapılandırın.
  2. Blob kapsayıcısını bağlamak için boş bir dizin oluşturun.
  3. Depolama hesabınıza erişim yetkisi verin.

Önbelleğe almayı yapılandırma

BlobFuse2, yerel dosya önbelleğe alma tekniklerini kullanarak yerel benzeri performans sağlar. Önbelleğe alma yapılandırması ve davranışı, büyük dosyaların akışını yaptığınıza veya daha küçük dosyalara eriştiğinize bağlı olarak değişir.

Büyük dosyaları akışla aktarma için önbelleğe almayı yapılandırma

BlobFuse2, dosyalar için disk önbelleğine alternatif olarak okuma ve yazma işlemlerinin akışını destekler. Akış modunda BlobFuse2, hem okuma hem de yazma için bellekteki büyük dosya bloklarını önbelleğe alır. Akış için önbelleğe alma ile ilgili yapılandırma ayarları, yapılandırma dosyanızdaki ayarların stream: altındadır:

stream:
    block-size-mb:
        For read only mode, the size of each block to be cached in memory while streaming (in MB)
        For read/write mode, the size of newly created blocks
    max-buffers: The total number of buffers to store blocks in
    buffer-size-mb: The size for each buffer

Temel bir akış senaryosunun bazı ayarlarını hızlı bir şekilde kullanmaya başlamak için örnek akış yapılandırma dosyasına bakın.

Daha küçük dosyalar için önbelleğe almayı yapılandırma

Daha küçük dosyalar, yapılandırma dosyasında altında file_cache: belirtilen geçici bir yola önbelleğe alınır:

file_cache:
    path: <path to local disk cache>

Not

BlobFuse2, tüm açık dosya içeriğini geçici yolda depolar. Tüm açık dosyaları içerecek kadar alanınız olduğundan emin olun.

Dosya önbelleğe alma için geçici yolu yapılandırmak için üç yaygın seçeneğiniz vardır:

Yerel yüksek performanslı disk kullanma

Dosya önbelleğe alma için mevcut bir yerel disk kullanıyorsanız, katı hal diski (SSD) gibi mümkün olan en iyi performansı sağlayan bir disk seçin.

RAM diski kullanma

Aşağıdaki örnek, BlobFuse2 için 16 GB'lık bir RAM diski ve bir dizin oluşturur. Gereksinimlerinizi karşılayan bir boyut seçin. BlobFuse2, boyutu 16 GB'a kadar olan dosyaları açmak için RAM diskini kullanır.

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

Azure'da, BlobFuse2 için düşük gecikme süreli bir arabellek sağlamak üzere VM'lerinizde bulunan SSD kısa ömürlü diskleri kullanabilirsiniz. Kullandığınız sağlama aracısına bağlı olarak, kısa ömürlü diski cloud-init için /mnt veya Microsoft Azure Linux Agent (waagent) VM'leri için /mnt/resource üzerine bağlayın.

Kullanıcınızın geçici yola erişimi olduğundan emin olun:

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

Blob kapsayıcısını bağlamak için boş bir dizin oluşturma

Blob kapsayıcısını bağlamak üzere boş bir dizin oluşturmak için:

mkdir ~/mycontainer

Depolama hesabınıza erişimi yetkilendirme

Kapsayıcıyı takan kullanıcı için depolama hesabına erişim vermelisiniz. Erişim vermenin en yaygın yolları aşağıdaki seçeneklerden birini kullanmaklardır:

  • hesap erişim anahtarını Depolama
  • Paylaşılan erişim imzası
  • Yönetilen kimlik
  • Hizmet sorumlusu

Yetkilendirme bilgilerini bir yapılandırma dosyasında veya ortam değişkenlerinde sağlayabilirsiniz. Daha fazla bilgi için bkz . BlobFuse2 ayarlarını yapılandırma.

Blob kapsayıcısını bağlama

Önemli

BlobFuse2 çakışan bağlama yollarını desteklemez. BlobFuse2'nin birden çok örneğini çalıştırırsanız, her örneğin benzersiz ve çakışmayan bir bağlama noktası olduğundan emin olun.

BlobFuse2, aynı bağlama yolunda NFS ile birlikte bulunmayı desteklemez. BlobFuse2'yi NFS ile aynı bağlama yolunda çalıştırmanın sonuçları tanımlanmamıştır ve veri bozulmasına neden olabilir.

BlobFuse2 kullanarak bir Azure blok blob kapsayıcısını bağlamak için aşağıdaki komutu çalıştırın. komutu içinde ./config.yaml belirtilen kapsayıcıyı konumuna ~/mycontainerbağlar:

sudo blobfuse2 mount ~/mycontainer --config-file=./config.yaml

Not

Bağlama seçeneklerinin tam listesi için bkz . BlobFuse2 bağlama komutları.

Artık Linux dosya sistemi ve ilgili API'ler aracılığıyla blok bloblarınıza erişiminiz olmalıdır. Dağıtımınızı test etmek için yeni bir dizin ve dosya oluşturmayı deneyin:

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

Verilere erişme

Genellikle Yerel Linux dosya sistemiyle çalıştığınız gibi BlobFuse2'ye bağlı depolama ile çalışabilirsiniz. Dosya yolunda sınırlayıcı olarak eğik çizgi (/) ile sanal dizin düzenini kullanır ve , , opendir, readdir, , rmdir, open, , closeunlinkstatreadcreatewritetruncateve renamegibi mkdirtemel dosya sistemi işlemlerini destekler.

Ancak, işlevsellikte bazı önemli farkların farkında olmanız gerekir:

Özellik desteği

Bu tabloda, bu özelliğin hesabınızda nasıl desteklendiği ve belirli özellikleri etkinleştirdiğinizde destek üzerindeki etkisi gösterilir:

Storage account type Blob Depolama (varsayılan destek) Data Lake Storage 2. Nesil 1 NFS 3.0 1 SFTP 1
Standart genel amaçlı v2 Yes Evet Evet Yes
Premium blok blobları Yes Evet Evet Yes

1 Azure Data Lake Storage 2. Nesil, Ağ Dosya Sistemi (NFS) 3.0 protokolü ve SSH Dosya Aktarım Protokolü (SFTP) desteği, hiyerarşik ad alanı etkinleştirilmiş bir depolama hesabı gerektirir.

Ayrıca bkz.

Sonraki adımlar