إتقان Azure Storage: Storage Account، Blob (Hot/Cool/Archive)، Files (SMB/NFS)، Disks (Managed Disks)، Tables، Queues. Lifecycle، immutability blob، تشفير، AzCopy، Storage Explorer، أنواع Storage Account.
للسياق: الدليل الرئيسي Azure AZ-104 · Tenant Azure مجّاني.
المقدّمة
Azure Storage هو مكافئ S3 + EBS + EFS مدموجة في خدمة واحدة. المجال 2 Implement and Manage Storage (15-20% AZ-104). هذا الدرس يُغطّي 5 خدمات Azure Storage وحالات الاستعمال.
المتطلّبات
- Tenant Azure مُهيَّأ.
- Azure CLI شغّال.
- المستوى المتوسّط.
- الوقت: ساعتان.
الخطوة 1 — Storage Account والأنواع
كلّ شيء في Azure Storage يمرّ عبر Storage Account. الـ SA يحوي: Containers (Blob)، Shares (Files)، Tables، Queues.
Performance tier : Standard (HDD، اقتصاديّ) | Premium (SSD، latency منخفض)
Replication:
LRS (Locally Redundant) : 3 نسخ في datacenter واحد
ZRS (Zone Redundant) : 3 نسخ في 3 AZ من منطقة واحدة
GRS (Geo Redundant) : LRS + نسخة async في المنطقة الشريكة
RA-GRS (Read-Access GRS) : GRS مع وصول قراءة على الثانوية
GZRS : ZRS + GRS (الأكثر متانة)
RA-GZRS : RA + GZRS
Account kind:
StorageV2 (موصى به) : كلّ الخدمات، كلّ tiers
BlobStorage (legacy) : Blob فقط
FileStorage : Premium Files
BlockBlobStorage : Premium Blob
# إنشاء Storage Account
az storage account create \
--resource-group lab-storage \
--name labstorageacct2026 \
--location francecentral \
--sku Standard_LRS \
--kind StorageV2 \
--access-tier Hot
في الاختبار: اختر replication حسب RTO/RPO. GRS لـ DR cross-region. ZRS لـ HA نفس المنطقة. LRS للاقتصاد.
الخطوة 2 — Blob Storage: tiers و lifecycle
Hot : وصول عالي التكرار. ~0.018 USD/Go/شهر
Cool : > 30 يوم. ~0.01 USD/Go + رسوم retrieval
Cold : > 90 يوم. ~0.0036 USD/Go (منذ 2023)
Archive: > 180 يوم. ~0.00099 USD/Go، retrieval 1-15h
# Container Blob
az storage container create --account-name labstorageacct2026 --name documents
# Upload
az storage blob upload --account-name labstorageacct2026 --container-name documents --file ./contract.pdf --name contract.pdf
# Set tier
az storage blob set-tier --account-name labstorageacct2026 --container-name documents --name contract.pdf --tier Cool
Lifecycle policy آليّ:
cat > lifecycle.json <<EOF
{
"rules": [{
"name": "moveToCoolThenArchive",
"type": "Lifecycle",
"definition": {
"filters": { "blobTypes": ["blockBlob"] },
"actions": {
"baseBlob": {
"tierToCool": { "daysAfterModificationGreaterThan": 30 },
"tierToArchive": { "daysAfterModificationGreaterThan": 180 },
"delete": { "daysAfterModificationGreaterThan": 2555 }
}
}
}
}]
}
EOF
az storage account management-policy create \
--resource-group lab-storage \
--account-name labstorageacct2026 \
--policy @lifecycle.json
الخطوة 3 — Immutability و soft delete
للامتثال التنظيمي (SEC 17a-4، banking):
# تفعيل immutable storage مع versioning
az storage account update --name labstorageacct2026 --enable-versioning true
# Time-based retention policy
az storage container immutability-policy create \
--account-name labstorageacct2026 \
--container-name compliance-logs \
--period 2555 \
--allow-protected-append-writes true
Soft delete blob: retention قابل للإعداد 1-365 يوماً. Soft delete container/share: استرداد containers محذوفة عرضياً.
الخطوة 4 — Azure Files
SMB / NFS storage as a service، قابل للمشاركة على multi-VM.
# إنشاء share
az storage share-rm create \
--resource-group lab-storage \
--storage-account labstorageacct2026 \
--name shared-data \
--quota 100
# Mount على Linux
SAS_KEY=$(az storage account keys list -g lab-storage -n labstorageacct2026 --query "[0].value" -o tsv)
sudo mount -t cifs //labstorageacct2026.file.core.windows.net/shared-data /mnt/azure-share \
-o vers=3.0,username=labstorageacct2026,password=$SAS_KEY,dir_mode=0777,file_mode=0777,serverino,nosharesock
# Mount على Windows
# net use Z: \\labstorageacct2026.file.core.windows.net\shared-data /user:labstorageacct2026 <KEY>
NFS: يتطلّب Premium FileStorage account، غير متاح في Standard.
الخطوة 5 — Managed Disks (تذكير درس VM)
أقراص مُرفَقة بـ VMs. راجع درس VM Azure للتفاصيل. Performance tiers: Standard HDD، Standard SSD، Premium SSD v1/v2، Ultra Disk.
الخطوة 6 — Tables و Queues
خدمات NoSQL legacy Azure (قبل Cosmos DB).
Tables : key-value NoSQL، schémaless، scalable
⚠️ Cosmos DB Table API موصى به في 2026 (نفس الأنماط، أكثر ميزات)
Queues : message queue بسيطة
⚠️ Service Bus Queues موصى به في 2026 لميزات enterprise
في الاختبار: اعرف الوجود، لكن Cosmos DB و Service Bus هما الخياران الحديثان.
الخطوة 7 — AzCopy: نسخ عالي الأداء
# تثبيت AzCopy
wget -O azcopy.tar.gz https://aka.ms/downloadazcopy-v10-linux
tar -xf azcopy.tar.gz
sudo mv ./azcopy*/azcopy /usr/local/bin/
# Copy ملفّ نحو blob
azcopy login
azcopy copy ./large-file.zip "https://labstorageacct2026.blob.core.windows.net/documents/"
# Copy bucket entier
azcopy sync ./local-folder "https://labstorageacct2026.blob.core.windows.net/documents/" --recursive
# Copy cross-account
azcopy copy "https://source.blob.core.windows.net/container?SAS" "https://dest.blob.core.windows.net/container?SAS" --recursive
AzCopy يستعمل parallelism multi-thread، أسرع 10x من az storage blob upload للملفّات الكبيرة.
الخطوة 8 — Encryption و Security
Encryption at rest (default):
- Microsoft-managed keys (MMK) : افتراضي، مجّاني، AES-256
- Customer-managed keys (CMK) : مفتاحك في Azure Key Vault، rotation، audit
- Customer-provided keys (CPK) : مفتاحك تقدّمه عند كلّ request
Encryption in transit:
- HTTPS only : forcer TLS, default depuis 2023
Network restrictions:
- Storage firewall : autoriser IPs/vNets spécifiques
- Private Endpoints : accès via IP privée du vNet seulement
# Forcer HTTPS only
az storage account update --name labstorageacct2026 --https-only true
# Firewall + private endpoint
az storage account update --name labstorageacct2026 --default-action Deny
MY_IP=$(curl -s https://api.ipify.org)
az storage account network-rule add --account-name labstorageacct2026 --ip-address $MY_IP
الخطوة 9 — SAS (Shared Access Signatures)
URL مؤقّتة بصلاحيّات مُقَيَّدة لكائن خاصّ.
# Generate SAS pour blob (1 hour)
az storage blob generate-sas \
--account-name labstorageacct2026 \
--container-name documents \
--name contract.pdf \
--permissions r --expiry $(date -u -d "1 hour" '+%Y-%m-%dT%H:%MZ')
# URL avec SAS = accès lecture pendant 1h
Use case: download lien temporaire pour client final, signature de document, etc.
الخطوة 10 — Cleanup
az group delete --name lab-storage --yes --no-wait
الأخطاء المتكرّرة
| الخطأ | الحلّ |
|---|---|
| اسم Storage Account مأخوذ | فريد عالميّاً، أضف random suffix |
| Archive tier retrieval lent | 1-15h normal، plan en advance |
| SAS expirée | regénérer، vérifier UTC time |
| Files mount échoue | vérifier port 445 ouvert dans NSG/firewall ISP |
| Lifecycle policy ne s’applique pas | attendre 24h، Azure async |
تكيّفات إقليميّة
PME: Storage Account LRS + lifecycle vers Cool/Archive. 1 To stockage ~10 USD/شهر.
Banques: GZRS replication + immutable storage + CMK encryption + Private Endpoints. Compliance PCI DSS.
ESN: Azure Files Premium NFS pour partage NFS multi-VM (project shares).
أسئلة شائعة
Storage Account ou Cosmos DB pour NoSQL? Cosmos DB pour features modernes. Storage Tables pour legacy uniquement.
Encryption activée par défaut? Oui depuis 2023, MMK AES-256 sur tous nouveaux SA.
Combien de SA par subscription? 250 par région par défaut, augmentable.
للتعمّق
- الدليل الرئيسي: Azure AZ-104
- التتمّة: Microsoft Entra ID.
- التوثيق: Azure Storage docs.
الكلمات المفتاحيّة: Azure Storage، Blob Hot Cool Archive، Files SMB NFS، Managed Disks، lifecycle policy، immutable storage، AzCopy، SAS، Private Endpoints.
تعميق
Banque ivoirienne: GZRS + immutable storage 7 سنوات + Private Endpoints + CMK rotation. Compliance audit Banque Centrale.
E-commerce Dakar: Blob Hot pour products + Cool لـ archives + CDN Azure Front Door devant. Latency < 50ms من غرب إفريقيا.
Fintech: Storage Account + Private Endpoint + Customer-managed keys + lifecycle 30j Cool/180j Archive. Compliance + توفير 70%.
أدوات تكميليّة
Azure Storage Explorer، AzCopy v10، Azure Backup، Azure File Sync، Storage Insights، Defender for Storage، Azure Policy لـ governance.