انتقل إلى تجمع الأقراص، وحدد الأقراص ضمن الإعدادات.
حدد إرفاق القرص الموجود وحدد الأقراص.
عند اختيار جميع الأقراص التي تريد إرفاقها، حدد حفظ.
الآن بعد أن قمت بتوصيل القرص الخاص بك ، يجب عليك تمكين LUNS الخاصة بهم.
حدد iSCSI ضمن الإعدادات.
حدد إضافة LUN ضمن الأقراص الممكنة ل iSCSI.
حدد القرص الذي قمت بإرفاقه مسبقا.
حدد حفظ.
الآن بعد أن قمت بتوصيل القرص الخاص بك وتمكين LUN، يجب عليك إنشائه وإرفاقه كمخزن بيانات iSCSI بسحابة Azure VMware Solution الخاصة. راجع إرفاق شبكة LUN عبر بروتوكول iSCSI للحصول على التفاصيل.
يضيف البرنامج النصي التالي قرصا إضافيا إلى تجمع الأقراص ويعرضه عبر iSCSI. يحتفظ بالأقراص الموجودة في تجمع الأقراص دون أي تغيير.
#Initialize input parameters
$resourceGroupName ="<yourResourceGroupName>"
$diskPoolName = "<yourDiskPoolName>"
$iscsiTargetName = "<youriSCSITargetName>"
$diskName ="<yourDiskName>" #Provide the name of the disk you want to add
$lunName ='<LunName>' #Provide the Lun name of the added disk
$diskIds = @()
#Add the disk to disk pool
$DiskPool = Get-AzDiskPool -Name $diskPoolName -ResourceGroupName $resourceGroupName
$DiskPoolDiskIDs = $DiskPool.Disk.Id
foreach ($Id in $DiskPoolDiskIDs)
{
$diskIds += ($Id)
}
$disk = Get-AzDisk -ResourceGroupName $resourceGroupName -DiskName $diskName
$diskIds += ,($disk.Id)
Update-AzDiskPool -ResourceGroupName $resourceGroupName -Name $diskPoolName -DiskId $diskIds
#Get the existing iSCSI LUNs and add the new disk
$target = Get-AzDiskPoolIscsiTarget -name $iscsiTargetName -DiskPoolName $diskPoolName -ResourceGroupName $resourceGroupName
$existingLuns = $target.Lun
$luns = @()
foreach ($lun in $existingLuns)
{
$tmpLunName = $lun.Name
$tmpId = $lun.ManagedDiskAzureResourceId
$tmplun = New-AzDiskPoolIscsiLunObject -ManagedDiskAzureResourceId $tmpId -Name $tmpLunName
$luns += ,($tmplun)
}
$newlun = New-AzDiskPoolIscsiLunObject -ManagedDiskAzureResourceId $disk.Id -Name $lunName
$luns += ,($newlun)
Update-AzDiskPoolIscsiTarget -Name $iscsiTargetName -DiskPoolName $diskPoolName -ResourceGroupName $resourceGroupName -Lun $luns
الآن بعد أن قمت بتوصيل القرص الخاص بك وتمكين LUN، يجب عليك إنشائه وإرفاقه كمخزن بيانات iSCSI بسحابة Azure VMware Solution الخاصة. راجع إرفاق شبكة LUN عبر بروتوكول iSCSI للحصول على التفاصيل.
إذا لم تكن قد قمت بذلك بالفعل، فقم بتثبيت ملحق تجمع الأقراص باستخدام الأمر التالي:
az extension add -n diskpool
إضافة مجموعة أقراص - CLI
يضيف البرنامج النصي التالي قرصا إضافيا إلى تجمع الأقراص ويعرضه عبر iSCSI. يحتفظ بالأقراص الموجودة في تجمع الأقراص دون أي تغيير.
# Add a disk to a disk pool
# Initialize parameters
resourceGroupName="<yourResourceGroupName>"
diskPoolName="<yourDiskPoolName>"
iscsiTargetName="<youriSCSITargetName>"
diskName="<yourDiskName>"
lunName="<LunName>"
diskPoolUpdateArgs=("$@")
diskPoolUpdateArgs+=(--resource-group $resourceGroupName --Name $diskPoolName)
diskIds=$(echo $(az disk-pool show --name $diskPoolName --resource-group $resourceGroupName --query disks[].id -o json) | sed -e 's/\[ //g' -e 's/\ ]//g' -e 's/\,//g')
for disk in $diskIds; do
diskPoolUpdateArgs+=(--disks $(echo $disk | sed 's/"//g'))
done
diskId=$(az disk show --resource-group $resourceGroupName --name $diskName --query id | sed 's/"//g')
diskPoolUpdateArgs+=(--disks $diskId)
az disk-pool update "${diskPoolUpdateArgs[@]}"
# Get existing iSCSI LUNs and expose added disk as a new LUN
targetUpdateArgs=("$@")
targetUpdateArgs+=(--resource-group $resourceGroupName --disk-pool-name $diskPoolName --name $iscsiTargetName)
luns=$(az disk-pool iscsi-target show --name $iscsiTargetName --disk-pool-name $diskPoolName --resource-group $resourceGroupName --query luns)
lunsCounts=$(echo $luns | jq length)
for (( i=0; i < $lunCounts; i++ )); do
tmpLunName=$(echo $luns | jq .[$i].name | sed 's/"//g')
tmpLunId=$(echo $luns | jq .[$i].managedDiskAzureResourceId | sed 's/"//g')
targetUpdateArgs+=(--luns name=$tmpLunName managed-disk-azure-resource-id=$tmpLunId)
done
targetUpdateArgs+=(--luns name=$lunName managed-disk-azure-resource-id=$diskId)
az disk-pool iscsi-target update "${targetUpdateArgs[@]}"
الآن بعد أن قمت بتوصيل القرص الخاص بك وتمكين LUN، يجب عليك إنشائه وإرفاقه كمخزن بيانات iSCSI بسحابة Azure VMware Solution الخاصة. راجع إرفاق شبكة LUN عبر بروتوكول iSCSI للحصول على التفاصيل.
تعطيل iSCSI على قرص وإزالته من التجمع
قبل تعطيل دعم iSCSI على قرص، تأكد من عدم وجود اتصالات iSCSI معلقة بشبكة LUN iSCSI التي يتم الكشف عن القرص باسم. عند إزالة قرص من تجمع الأقراص، لا يتم حذفه تلقائيا. هذا يمنع أي فقدان للبيانات ولكن ستظل تتم محاسبتك على تخزين البيانات. إذا لم تكن بحاجة إلى البيانات المخزنة في قرص، فيمكنك حذف القرص يدويا. سيؤدي ذلك إلى حذف القرص وجميع البيانات المخزنة عليه ومنع فرض المزيد من الرسوم.
ضمن الأقراص الممكنة ل iSCSI ، حدد الأقراص التي تريد إزالتها وحدد إزالة LUN.
حدد حفظ وانتظر حتى تكتمل العملية.
الآن بعد أن قمت بتعطيل LUN، يمكنك إزالة الأقراص من تجمع الأقراص.
حدد الأقراص ضمن الإعدادات.
حدد إزالة القرص من تجمع الأقراص وحدد الأقراص.
حدد حفظ.
عند اكتمال العملية، ستتم إزالة القرص بالكامل من تجمع الأقراص.
#Initialize input parameters
$resourceGroupName ="<yourResourceGroupName>"
$diskPoolName = "<yourDiskPoolName>"
$iscsiTargetName = "<youriSCSITargetName>"
$diskName ="<NameOfDiskYouWantToRemove>" #Provide the name of the disk you want to remove
$lunName ='<LunForDiskYouWantToRemove>' #Provide the Lun name of the disk you want to remove
$diskIds = @()
#Get the existing iSCSI LUNs and remove it from iSCS target
$target = Get-AzDiskPoolIscsiTarget -name $iscsiTargetName -DiskPoolName $diskPoolName -ResourceGroupName $resourceGroupName
$existingLuns = $target.Lun
$luns = @()
foreach ($lun in $existingLuns)
{
if ($lun.Name -notlike $lunName)
{
$tmpLunName = $lun.Name
$tmpId = $lun.ManagedDiskAzureResourceId
$tmplun = New-AzDiskPoolIscsiLunObject -ManagedDiskAzureResourceId $tmpId -Name $tmpLunName
$luns += ,($tmplun)
}
}
Update-AzDiskPoolIscsiTarget -Name $iscsiTargetName -DiskPoolName $diskPoolName -ResourceGroupName $resourceGroupName -Lun $luns
#Remove the disk from disk pool
$disk = Get-AzDisk -ResourceGroupName $resourceGroupName -DiskName $diskName
$DiskPool = Get-AzDiskPool -Name $diskPoolName -ResourceGroupName $resourceGroupName
$DiskPoolDiskIDs = $DiskPool.Disk.Id
foreach ($Id in $DiskPoolDiskIDs)
{
if ($Id -notlike $disk.Id)
{
$diskIds += ($Id)
}
}
Update-AzDiskPool -ResourceGroupName $resourceGroupName -Name $diskPoolName -DiskId $diskIds
# Disable iSCSI on a disk and remove it from the pool
# Initialize parameters
resourceGroupName="<yourResourceGroupName>"
diskPoolName="<yourDiskPoolName>"
iscsiTargetName="<youriSCSITargetName>"
diskName="<yourDiskName>"
lunName="<LunName>"
# Get existing iSCSI LUNs and remove it from iSCSI target
targetUpdateArgs=("$@")
targetUpdateArgs+=(--resource-group $resourceGroupName --disk-pool-name $diskPoolName --name $iscsiTargetName)
luns=$(az disk-pool iscsi-target show --name $iscsiTargetName --disk-pool-name $diskPoolName --resource-group $resourceGroupName --query luns)
lunCounts=$(echo $luns | jq length)
for (( i=0; i < $lunCounts; i++ )); do
tmpLunName=$(echo $luns | jq .[$i].name | sed 's/"//g')
if [ $tmpLunName != $lunName ]; then
tmpLunId=$(echo $luns | jq .[$i].managedDiskAzureResourceId | sed 's/"//g')
targetUpdateArgs+=(--luns name=$tmpLunName managed-disk-azure-resource-id=$tmpLunId)
fi
done
az disk-pool iscsi-target update "${targetUpdateArgs[@]}"
# Remove disk from pool
diskId=$(az disk show --resource-group $resourceGroupName --name $diskName -- query id | sed 's/"//g')
diskPoolUpdateArgs=("$@")
diskPoolUpdateArgs+=(--resource-group $resourceGroupName --name $diskPoolName)
diskIds=$(az disk-pool show --name $diskPoolName --resource-group $resourceGroupName --query disks[].id -o json)
diskLength=$(echo diskIds | jq length)
for (( i=0; i < $diskLength; i++ )); do
tmpDiskId=$(echo $diskIds | jq .[$i] | sed 's/"//g')
if [ $tmpDiskId != $diskId ]; then
diskPoolUpdateArgs+=(--disks $tmpDiskId)
fi
done
az disk-pool update "${diskPoolUpdateArgs[@]}"