Skip navigation

Blog Posts

Total : 4,339

Blog Posts

1 2 Previous Next
jatinjsk Enthusiast

Get Naa ID and Name in PowerShellers

Posted by jatinjsk Jan 23, 2020

$DSList = Get-Datastore |where {$_.Type -eq 'VMFS'}

$output= ""|Select Name, NaaID

foreach($ds in $DSList)

{

 

    $output.Name =$ds.Name

    $output.NaaID=$ds.extensiondata.info.vmfs.extent.diskname

    $output

    $output|Export-csv DSList.csv -Append -NoTypeInformation

}

$DSList = Get-Datastore |where {$_.Type -eq 'VMFS'}

$output= ""|Select Name, NaaID

foreach($ds in $DSList)

{

 

    $output.Name =$ds.Name

    $output.NaaID=$ds.extensiondata.info.vmfs.extent.diskname

    $output

    $output|Export-csv DSList.csv -Append -NoTypeInformation

}

 

$DSList = Get-Datastore |where {$_.Type -eq 'VMFS'}$output= ""|Select Name, NaaIDforeach($ds in $DSList){
    $output.Name =$ds.Name    $output.NaaID=$ds.extensiondata.info.vmfs.extent.diskname    $output     $output|Export-csv DSList.csv -Append -NoTypeInformation}

$DSList = Get-Datastore |where {$_.Type -eq 'VMFS'}

$output= ""|Select Name, NaaID

foreach($ds in $DSList)

{

 

    $output.Name =$ds.Name

    $output.NaaID=$ds.extensiondata.info.vmfs.extent.diskname

    $output

    $output|Export-csv DSList.csv -Append -NoTypeInformation

}

$DSList = Get-Datastore |where {$_.Type -eq 'VMFS'}

$output= ""|Select Name, NaaID

foreach($ds in $DSList)

{

 

    $output.Name =$ds.Name

    $output.NaaID=$ds.extensiondata.info.vmfs.extent.diskname

    $output

    $output|Export-csv DSList.csv -Append -NoTypeInformation

}

$DSList = Get-Datastore |where {$_.Type -eq 'VMFS'}

$output= ""|Select Name, NaaID

foreach($ds in $DSList)

{

 

    $output.Name =$ds.Name

    $output.NaaID=$ds.extensiondata.info.vmfs.extent.diskname

    $output

    $output|Export-csv DSList.csv -Append -NoTypeInformation

}

$DSList = Get-Datastore |where {$_.Type -eq 'VMFS'}

$output= ""|Select Name, NaaID

foreach($ds in $DSList)

{

 

    $output.Name =$ds.Name

    $output.NaaID=$ds.extensiondata.info.vmfs.extent.diskname

    $output

    $output|Export-csv DSList.csv -Append -NoTypeInformation

}

APIs can be very useful to automate processes and integrate systems. VMware Workspace ONE Access has a full set of REST APIs that you can leverage.

 

The steps below will show you the basic steps to connect to a Workspace ONE Access server and send an API request:

 

1. Login to your Workspace ONE Access environment as admin. On this example I am using Google Chrome, so the following options may vary if you are using a different browser.

 

Screenshot 2020-01-22 at 13.27.47.png

 

2. On the "Dashboard" page, press F12 to view the Developer Tools. Alternatively, navigate to Menu (tree dots) > More Tools > Developer Tools.

 

Screenshot 2020-01-23 at 10.08.35.png

 

 

3. Select the Application tab and then expand Cookies.

 

Screenshot 2020-01-22 at 15.54.09.png

 

4. Under Cookies, select your IDM URL, highlight the HZN cookie and copy its Value.

 

Screenshot 2020-01-23 at 10.10.27.png

 

5. Open your API client tool. On this example I am using Postman (https://www.getpostman.com/).

 

6. Select your API request method (e.g. GET) and enter the URL for it. Under the Header tab, enter the following:

 

Key: Authorization

Value: HZN <Cookie value copied on step 4>

 

Screenshot 2020-01-22 at 14.00.24.png

 

 

7. Enter any other required fields (depending on your request) and click Send.

 

 

More information, including a list of the API calls that can be used with VMware Workspace ONE Access, can be found at: https://code.vmware.com/apis/57/idm

 

 

 

--

 

The postings on this site are my own and do not represent VMware’s positions, strategies or opinions.

part 3 of 3

Part 1

Part 2

C. Release Alpha/ Beta track app to Production

1. In the Google Play console, while your app is selected, go to Release Management\ App releases. In Alpha, select “Manage”.

4-1.png

2. Select “Release to Production” at the Release section.

4-2.png

3. You will see the new release to production page.

4-3.png

Scroll to the bottom and click “Save”, then “Review”.

4-3-2.png

4. Click “Start Rollout to Production”. This will release the Alpha/Beta apk to the Production track.

4-4.png

5. The Alpha (or Beta) track will now be empty and show it was promoted to Production.

4-5.png

In UEM, all the devices that have the Prod version assigned to it will see that the update is available on the Managed Play store.

In the case where the Alpha(Beta) track is superseded, devices in the Alpha (Beta) track will get the Production version of the app.

UEM currently whitelists the track it sees the device is first assigned to in UEM (following the priority in Assignments of the app in UEM).

 

Note: It may take time for any new version of the app uploaded in Play console (or via Workspace ONE in iFrame) to get automatically installed on the work profile. Refer to this Google article. To manually install the available update, end-user can go to the Managed Play store and see updates available in My work apps\ Updates section.

References

https://developers.google.com/android/work/play/emm-api/distribute#distribute_apps_for_closed_testing

Manage app updates - Managed Google Play Help

https://docs.vmware.com/en/VMware-Workspace-ONE-UEM/1912/Application_Management-for-Android/GUID-49EE45D2-A44A-4695-B0E5-E45BEFC8FDA9.html

Part 2 of 3

Part 1

Part 3

B. Add a New App Version

The steps below outlines steps to publishing apps to the alpha or beta testing tracks in Google Play console, then assigning those to Workspace ONE UEM smartgroups.

1. Login to the Workspace ONE UEM console

2. Go to Apps & Books\ Applications\ Native\ Public\ Click “Add Application”

3. Select Platform: Android. Name can be kept blank. Click “Next”

4. Select the private apps icon on the left.

3-4.png

3-4-2.png

5. Click “Make advanced edits” under Advanced editing options. This will take you to the Google Play console login page.

3-5.png

6. After logging in to the Google Play console using the google account tied to your Workspace ONE tenant, go to your app and navigate to Release management\ App release. You can select alpha or beta track. In this example, we will add an apk to the Alpha track. Click “Manage” in Alpha track.

3-6.png

7. In organizations, click “Edit”

3-7.png

8. Check the organization corresponding to the Workspace ONE organization group. Click “Done”.

3-8.png

9. Click “Edit Release”

3-9.png

10. Add the apk file. After adding the apk, you will see details about the version code and size of the file.

3-10.png

11. Click “Save” at the bottom of the page, then “Review”.

3-11.png

12. View any of the warning messages and make changes to the app, as necessary.

3-12.png

3-12-2.png

13. Click “Start Rollout”, then “Confirm” at the pop-up window.

3-13.png

14. In UEM console, select the app under Apps & Books\ Native\ Click “Assign”

3-14.png

15. Click “Add Assignment”

3-15.png

16. Select the Assignment Group who you want to get the new version (alpha) of the app. Enable Managed Access, select Alpha as Pre-release version. Click “Add”.

3-16.png

17. In the verification screen move up priority of your group where the pre-release is assigned.

3-17.png

18. Then click “Save and Publish”

3-18.png

19. Click “Publish” to confirm the assignment. This will make the alpha version of the app available to the devices belonging to the smart group chosen in Step 16.

3-19.png

Note: Same process can be done for Beta release

 

(continues to Part 3)

Part 1 of 3

Part 2

Part 3

 

This step-by-step guide shows how to upload internal apps (apks you’ve developed) to the Android Managed Play Store for your organization via Workspace ONE. Subsequent sections also show how to add other versions for Alpha/ Beta testing in the Google Play console, then manage assignment of those versions to specific devices/ users in Workspace ONE.

 

Pre-requisites:

  1. Workspace ONE environment already registered to Android EMM

1-1.png

  2. Apk file with an application ID that has not been published in the Android public play store.

 

A. Publish a New Application

1. Login to the Workspace ONE UEM console.

2. Go to Apps & Books\ Applications\ Native\ Public\ Click “Add Application”.

3. Select Platform: Android. Name can be kept blank. Click “Next”.

2-3.png

4. Select the private apps icon on the left.

2-4.png

5. Click the “+” button to add a new app.

2-5.png

6. Make sure to add a Name, then select “Upload APK”.

2-6.png

The “Create” button will be enabled if the app can be uploaded.

2-6-2.png

7. You will see the app in the Private apps section, and a notification that publishing in your store may take up to 10 minutes.

2-7.png

8. Close this screen. The app you just uploaded will be the app list under Public apps.

2-8.png

(Optional) To edit the logo shown in the console, click on the pencil icon beside the app.  Note that this only updates the icon in UEM, not in the Play store.

2-8-2.png

2-8-3.png

9. Save and assign the app.

2-9.png

10. Click Add Assignment

2-10.png

11. Pick the organization group/ smart group you would like to assign the app to. Click add.

2-11.png

12. Update Assignment pop-up will appear. Click “Save and Publish” to confirm. Then “Publish” at the Preview Assigned Devices page.

2-12.png

2-12-2.png

13. You will return to the app list screen. If the deployment is set to “Automatic”, app will get installed automatically on the device and show in both the Workspace ONE Hub/ Catalog and the  Google Play Store.

2-13.png

2-13-3.png2-13-2.png

 

(continues to Part 2)

いったいどれくらいの人がこのナレッジの恩恵を受けるのかは不明ですが、一応共有しておきます。

※VMTNはJiveと呼ばれるプラットフォームを使っているはずですので、同じプラットフォームを使っている場合は流用可能と思います。

 

問題定義

日々日本語でVMware関連のナレッジを発信している筆者ですが、ちょっと前までURLがごちゃごちゃするのが悩みでした。

具体的には以下のような感じになってしまいます。

ブログ名:【VxRail】既存環境からvSAN 環境へのMigration:その① 【イントロダクション】

URL:https://communities.vmware.com/people/nkaneda/blog/2019/09/24/vxrail-%E6%97%A2%E5%AD%98%E7%92%B0%E5%A2%83%E3%81%8B%E3%82%89vsan-%E7%92%B0%E5%A2%83%E3%81%B8%E3%81%AEmigration-%E3%81%9D%E3%81%AE-%E3%82%A4%E3%83%B3%E3%83%88%E3%83%AD%E3%83%80%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3

 

上記を見ればわかるように日本語のタイトルでブログを執筆するとタイトル=URLになる関係上、マルチバイト文字がURLエンコードされて、かなりごちゃごちゃします。

筆者はブログを仕事でも活用(ナレッジの紹介など)しているため、URLがごちゃごちゃするのが何となく嫌でした。URLだけみてどの記事なのかの判別も不可能ですし。。。

 

ちなみに上記の仕組みにはもう一つ難点があって、上の例ですとブログタイトルの「その①」の①の部分がどうやら環境依存文字として正しく認識されないらしく、②も③も同じタイトルして扱われてしまうようです。そのため、②や③を執筆すると同じURLになってしまう、という不具合があります。

 

解決方法

この問題の解決方法はいたってシンプルです。

最初にブログを作成するときにASCII文字だけでタイトルを設定し、Save Draftで保存します。

すると、この段階でのブログタイトルでブログのURLが作成されます。

そのあと、ブログタイトルを変えたとしてもURLは維持される仕様のため、URLがエンコードによってごちゃごちゃするのを防げます。

下記の図は、本ブログを作成したときの様子ですが、いったんASCII文字のみでブログタイトルを記述しているのがわかると思います。

そしてこの時のタイトルが、いまあなたがアクセスしているURLに反映されます。

1.PNG

 

大したことのないナレッジですが、これによってURLをコピペするときもすっきりしますし、うっかり間違った記事を案内してしまうミスも減らせます。

So, in 2020 I started this blog, my goal is to share some of my thoughts and predictions about where technology and the usage of that technology is going. I will try to share my thoughts on harnessing the technology and process currently available to fast track the delivery of services to become a strategic partner to business.

 

A little about me, I have been actively been working on some type of computer since 1991, while still at high school I developed a passion for blinking lights, if it be on a hard drive or a network router. Since then I have been developing skills to allow me to pursue any opportunity that presented itself. What I have found is that my skill set being extremely broad yet focused around process has allowed me to understand many aspects of Information Technology and allows me to adapt and learn as new technology comes to the fore.

 

During my career I have had the opportunity to act in many roles, these roles linked in some way to a business benefit that was either being developed, improved or being maintained. Customer Satisfaction and happiness in directly proportionate to how well these services meet expectations, you may have noticed I did not say requirements? Requirements are documented and measurable, what I am talking about is the perception of the service is meeting the business requirement. My experience has led me to cut though all the smoke and mirrors and evaluate if the expectation from a user can be met in a cost effective and efficient manner that will continue to deliver value to all parties in the future.

 

I will not get it right every time, but my goal is to provide a unique perspective on all things technology that we interface with and leverage to get us ahead of the pack. There will be some alignment with trends and technology where I see it adding value, but in my current role my perspective of where the industry is and what works or doesn’t is appreciated. Don’t take my perspective and forcefully apply it to your use cases, you need to develop your own perspective and understanding of your unique challenges.

Sharing you my script display the VMware tools version and status

 

From a Host or cluster level

Get-VM -Location "pit-esx33.sj” | % { get-view $_.id } | 
Select Name, @{Name=“ToolsVersion”; Expression={$_.config.tools.toolsversion}}, @{ Name=“ToolStatus”; Expression={$_.Guest.ToolsVersionStatus}} | Sort-Object Name

 

From a VM list

$vmNames = Get-Content -Path D:\vmNames.txt
Get-VM -Name $vmNames | % { get-view $_.id } | select Name, @{Name=“ToolsVersion”; Expression={$_.config.tools.toolsversion}}, @{ Name=“ToolStatus”; Expression={$_.Guest.ToolsVersionStatus}} | Sort-Object Name

最近vSphere関連の以下の記事をフォローするようになりました。

VMware Support Insider

 

定期的に各製品に関する流行り(?)のKBが紹介されているのでサポートの人間としてはぜひとも押さえておきたいところです。

 

先日のUpdateにて、以下のKBを見つけました。

Transferring files through vSphere Client might fail (2147256)

 

vSphere Client経由でのデータストアへのファイルのUploadやOVA/OVFのデプロイが失敗する、という内容のKBで、サポート観点でいえば、問い合わせが来るたびに「あー、あれね。」となるような事象です。

 

今回このKBに注目した理由として、私自身がこのKBをしらなかったためです。

この事象自体はよく知っていて、何度も解決策を案内していたのですが、一度もこのKBにたどり着くことはできませんでした。

 

しかし、よくよく調べてみるとこの事象でエラーになった際のエラー画面にバッチリこのKBの番号が書かれてるんですね。。。

 

ovf error.PNG

 

エラー画面を送ってくれない人も多いので全く気付いてませんでした。完全に灯台下暗しでした

(というか、問い合わせる前にきづいて~)

 

 

自分のサポートエンジニアとしての未熟さを痛感したとともに、VMware Support Insider  をフォローしてよかった、と思った次第です。

 

 

### (オマケ) vmware KB 豆知識

vmwareのKBにはCreate DateとLast Update Dateが確認できますが、Create Date = Publish Date(External)ではないので注意が必要です。

Create Dateはあくまでも、KB自体が最初に作成されたタイミングのようで、外部向けに公開された日付とは限りません。

たとえば、 https://kb.vmware.com/s/article/70650 はCreate Dateが2019/6/10になってますが、このKBはvSphere 6.7U3での改善を紹介しているものですので、vSphere 6.7U3の公開(2019/8/20)よりも前に公開されてはいませんでした。

ふつうはCreate DateやLast Modified Dateを気にする場面は少ないと思いますが、もし確認される際は↑の事実をご留意ください。

Unmapの必要性

vSANのサポートをしていると時々「容量が足りない!容量を空ける方法を教えてほしい」といった問い合わせを受けることがあります。

Storageのサポートをしていた時からたびたびこういう問い合わせを受けますが、ベンダーだけが知る秘密の方法、みたいなものはないので基本的にはお客様のデータを削除していただくか、Diskを追加して容量を拡張していただく、という形になります。

※お客様の使い方を効率化することで空き容量を捻出できる場合もあると思いますが、基本的にはサポートでなく有償のコンサルタントサービスになるのが一般的と思います。コンサルに金を出すくらいならその金でDiskを買うか、自分で勉強したほうがいい、というのは私の個人的な意見です。

 

もちろん多くのお客様は上記のようなことはご承知なので、データの削除をしてくれます。ただしVMwareやStorageをよくご存じでないお客様の場合、

「GuestOSでデータを削除したのにvSANの空き容量が増えない」

というお問い合わせを受けることがあります。

vSANの場合は基本的にはThin Provisioningとなりますので、vSAN上の仮想マシンが仮想ディスクを消費するたびに領域が少しずつ割り当てられていく、という仕組みになっています。

一度割り当てられた領域は割り当て済みとなるため、たとえその領域が使用されていなかったとしてもあとから回収することはできません。(※vSAN 6.7U1以前)

vSANにはThinではなくLazy zero-ed Thickのようにすることはできますが、デフォルトはThinなので特に指定しない限り上記のような動作になります。

具体的には以下のような感じになります。

 

最初に100GBの仮想ディスクを持つ仮想マシンをvSANデータストア上にThinで作成し、その上にOSをInstallしたとします。

Install直後は10GBほどしか使われてないとすると、対象の仮想ディスクのvSANデータストア上での容量も10GBほどになります。

その後、GuestOSにて50GBの書き込みを実施したとします。そうするとvSANデータストアで対象の仮想ディスクに追加で50GB分の容量が割り当てられるので、合計で60GBとなります。

その後、あとから書き込んだ50GBのデータを、GuestOS上で削除した場合、GuestOS上でのDisk使用率は低下しますが、vSANデータストアにおいてはすでに60GB分が割り当て済みなので、対象の仮想ディスクのvSANデータストア上のサイズは60GBのままです。(GuestOS上では10GB分のサイズしか使用してない)

この場合、対象の仮想ディスクに割り当て済みだが、実際には使用されていない容量が50GBあることになります。

この50GBはvSANデータストア上のほかの仮想ディスクですることもできず、かといって対象の仮想ディスクを使用するGuestOSからも使用されてないので完全に無駄な領域となってしまいます。

 

つまり、vSANデータストア上に作成した仮想マシンにて、上記のような作業を繰り返してしまった場合、実際に使っている量よりも明らかにvSANの使用容量が多いぞ?ということになってしまうわけです。

 

この問題を解決するためには、GuestOSで使用されなくなった領域をvSANデータストアに返却する仕組みが必要です。

その機能のことをUnmapといいます。

この機能はvSAN 6.7U1からサポートされました。(デフォルトでは無効)

この機能を利用することで、上記のような容量管理上無駄となってしまう領域を再利用することが可能になります。

 

Unmapの利用方法

Unmapは前述のとおりvSAN 6.7U1からの機能となりますので前提条件として、ESXi/vCenterがともにvSphere 6.7U1以降であり、vsan disk formatも7以上である必要があります。

https://kb.vmware.com/s/article/2145267

https://kb.vmware.com/s/article/2150753

 

またUnmap機能はデフォルトで無効になっていますが、使用方法はVMware Docから確認できます。

Reclaiming Space with SCSI Unmap

UNMAP/TRIM Space Reclamation on vSAN | vSAN Space Efficiency Technologies | VMware

 

細かい使用方法や前提条件(仮想ハードウェアのVersionなど)は上記の公式ドキュメントに譲りますが、大体の流れとしては以下のようになります。

    • 前提条件を満たしていることを確認
    • RVCにて機能を有効化する。
    • 各GuestOSごとの設定

 

GuestOS側での対応について

UnmapのオペレーションはvSAN側から開始するものではなく、GuestOS側から開始するものです。

というとも、vSANデータストア側からは、GuestOS内でどの領域を使用しているのかが不明なため、GuestOSがストレージ側(vSAN)にどの領域を解放してよいのかを教えてあげる必要があるためです。

Widowsサーバの場合、2012以降であればこのUnmapを開始する作業(Trim)がデフォルトで有効になっているため、特に問題はないと思いますが、Linux環境ではちょっとOSや環境に応じて個別の対応が必要になるかもしれません。

※あくまでも私の認識ではありますが、TrimとUnmapは同じ意味であり、OSの文脈ではTrimが使われ、Storageの文脈ではUnmapが使われることが多い印象です。

厳密には異なるかもしれませんが、少なくともこの記事ではTrim=Unmapとして記載してます。

※※WindowsサーバにおけるTrim設定の確認や動作検証などは以下のブログが参考になると思います。

https://www.idaten.ne.jp/portal/page/out/secolumn/vmware/column52.html

 

CentOS7 + LVM 利用の場合

私の環境ではLVMを利用したCentOS7でした。

その場合は以下の対応が必要となりました。

lvm.confの編集

LVMの場合は実際にDiskを管理しているのLVMサービスになりますので、LVMにてTrim/Unmapを有効化する必要があります。

具体的には、/etc/lvm/lvm.conf ファイルの

issue_discards = 0

の部分を

issue_discards = 1

にしてあげる必要があります。

 

fstabの編集

ファイルシステムでもTrim/Unmapを有効化してあげる必要があります。

具体的には、/etc/fstab を編集して対象のファイルシステムにdiscardオプションをつけてあげる必要があります。

私の環境の場合はLVMで作成した/dev/mapper/centos-home をXFSファイルシステムでフォーマットして、/homeとしてマウントしていましたので、fstabには以下のように設定されてました。

/dev/mapper/centos-home /home                   xfs     defaults

この部分に手を加え、

/dev/mapper/centos-home /home                   xfs     defaults,discard

として、discardオプションを足しました。

 

trimの実行

設定が終わったらTrimを実行してあげる必要があります。

VMware Docによるとfstrimコマンドで実施することが推奨とありました。

/homeのファイルシステムに対して実行したい場合は、以下のような形式で実行します。

※不要なファイルはあらかじめGuestOSレベルで削除しておいてください。

※※設定直後はコマンドが成功しないことがありました。その場合はいったんRebootしてあげてください。

 

(コマンド)# fstrim -v /home

(出力)/home: 1.7 TiB (1838816620544 bytes) trimmed

※ -v オプションはつけなくてもいいのですが、つけないと何も出力が返ってこないので、私はつけるようにしてます。(なんとなくの安心感があるので。)

 

 

Unmapの結果や進捗を確認する

fstrimコマンドを実行した場合、出力は比較的すぐに返ってきます。

もちろん、そんな短時間にUnmap処理自体が完了したわけではありません。

私の理解ではOSはUnmapの処理をStorageに指示するのみで実際の処理はStorage側で実施されているはずです。

vSANの場合もOS側から進捗や結果を確認することはできず、vSANの統計情報や、vSphereの消費容量から確認することになります。

 

Unmap IOを確認する

vSANのパフォーマンス情報にはUnmap IO情報が個別の項目として存在するのでそこから確認可能です。

Unmap IOは対象の仮想マシンが稼働するホスト上で記録されます。

つまり、Unmapを実行した仮想マシンAが、ESXi Bで稼働していた場合は、ESXi BのvSAN統計情報を確認する必要があります。

vSphere Client(HTML5)にログインし、ホストとクラスタのViewから、ESXi Bを選択し、監視→vSAN → パフォーマンスから確認できます。

 

Unmap前の情報

以下がUnmap前の統計情報です。UnmapのIOPSがずっとゼロであることがわかります。

1.PNG

 

Unmap後の情報

以下がUnmap後の情報です。Unmap IOPSが増えており、同じタイミングでTrim/Unmap スループットが記録されています。

Unmap IOがあるうちはUnmap進行中、Unmap IOがなくなったら完了、と言えそうです。

2.PNG

 

Unmap結果について

Unmapの結果については、vSphere Client(HTML5)から、vSANの空き容量が増えていることを確認したり、対象の仮想マシンがデータストア上で消費する容量が減っていることで確認できます。

今回はキャプチャをとり忘れてしまったのですが、実際にやってみる際は事前と事後の容量を比較してみるといいと思います。

 

 

Unmapされない?

きちんと設定したはずなのに、想定通りにUnmapが走ってくれない場合もあると思います。

対象の仮想マシンでSnapshotがある場合は、Unmapしたい領域をSnapshotが使っていて解放されないことがあるようです。

Snapshotがない場合でも、Replicationなどのソリューションが介在している場合、うまく動作しないことが考えられます。

私のラボ環境ではDell EMCのRP4VMでReplicationを行っている仮想マシンに関してはUnmapが動作しませんでした。

詳細なロジックや追加検証にて確認すべき余地はあるため、確定情報ではないですが、Unmapがうまくいかない場合は、SnapshotやReplicationなどの機能をOffにしたり削除したりといった切り分けが有効化と思います。

 

いかがでしたでしょうか。vSANは70%程度の容量使用率が推奨されている関係もあって、いきなり容量が足りなくなる、ということはほとんどないとは思いますが、空き容量が少なくなってくると、vSANの動作に影響が出たり、パフォーマンスが出なかったり、障害時に可用性が維持できないなどの問題が生じます。

現在空き容量でお困りではないユーザであっても、使用していない領域を再利用できるに越したことはないと思います。

Unmapは地味に大事な機能だと思いますので、vSAN 6.7U1以前のVersionをお使いの場合は、ぜひともUpgradeをご検討ください。

このブログの内容が運用や管理の助けになれば幸いです。

vEXPERT_2019.png

vEXPERT 2019の山辺です。日本の vExperts Advent Calendar 2019 の21日目の投稿です。

 

早いもので、2019年もAdvent Calendarの季節ですね。昨年の vExperts Advent Calendar 2018 では、ひとりでも多くの方に、VMware vSphere 環境で、GPUパワーを享受できる「NVIDIA 仮想GPUソリューション」を知って頂きたく、仮想GPU入門的な投稿をさせて頂きました。

(昨年の投稿に興味ある方は こちら!)

 

今回の投稿では、この1年間の振り返り、実際に使っている事例を紹介しつつ、今後、広がる仮想GPU活用ワークロード(用途)をご紹介したいと思います!

1)”Windows10 VDI は GPUが必要”って言ってるけど、本当に使われてるの?

2) NVIDIAの仮想GPUソリューションを活用する新たなワークロード

◆GPU:Wikiさんを引用させて頂くと、【Graphics Processing Unit(グラフィックス プロセッシング ユニット、略してGPU)は、コンピュータゲームに代表されるリアルタイム画像処理に特化した演算装置ないしプロセッサである。】とのこと。

- Wikipedia: Graphics Processing Unit -

 

1)”Windows10 VDI は GPUが必要”って言ってるけど、本当に使われてるの?

Windows10の時代は、Windows7までのOSやアプリケーションと比べ、Microsoft OfficeやWebブラウザを中心に使用するビジネスユーザーでもGPUパワーが不可欠だよ!っていう説明を昨年しましたが、実際に、それを体感し、NVIDIA仮想GPUソリューションを、OA用途のVDI環境で採用する団体企業はどんどん増えています。いくつか、事例として公開されているものがあるので、以下に案内しますね。

 

【NVIDIA 仮想 GPUソリューション 成功事例】

ハーゲンダッツ ジャパン様東急リバブル様 
はなさく生命様

 

GPU搭載のVDIといえば、CADワークステーションでしょ!って連想する方は、まだまだ多いと思いますが、公開事例の通り、食品小売業、不動産仲介、生命保険、というように、CADとかデザインといったグラフィックス全開なイメージと離れた業界において、OA用途のVDI環境で、NVIDIA 仮想GPUソリューションの採用は広がっているんです。章タイトル「”Windows10 VDI は GPUが必要”って言ってるけど~」の通り、GPU採用は、Windows10へのバージョンアップ移行がきっかけです。過去のセキュリティ偏重のVDIは「遅くてもセキュリティのため我慢して使う」ということが多かったですが、昨今は、「遅さを我慢するVDIでは生産性が下がり期待する働き方改革につながらない」から、テレワークによる生産性向上を支えるVDIを実現できるストレスフリーなVDIを選択するユーザーが増えています。


Windows10は、システム要件に記載の通り、ハードウェアアクセラレーション(GPU)前提です。実際、下図の通り、そのOS上で動作するアプリケーションのGPU利用はどんどん増加傾向にあり、その Windows 10をVDI環境で利用する際は、増え続けるグラフィックスのニーズを受け止めるために仮想GPUが無いと、ストレスフルなVDIになってしまうというわけです。このあたりのネタは、昨年も紹介しましたが、2017年、2018年、2019年と、毎年のFeature Updateを通して、予想通りの進化しています。

◆補足情報(レイクサイドソフトウェア社ホワイトペーパー)

 上の図は、ワークスペース分析のリーディングカンパニーであるレイクサイドソフトウェア社が発行しているホワイトペーパーを参考にしています。
 ・レイクサイドソフトウェア︓ホワイトペーパー

  GPU アクセラレーションを活⽤したユーザーエクスペリエンスの向上(Windows 10 の環境と Windows 7 の環境を対象とした⽐較分析)

  https://www.lakesidesoftware.com/jp/resources/white-papers/elevating-user-experience-through-gpu-acceleration

 

GPU無のVDIで、パフォーマンスに課題を抱えている方は、解決手段のひとつとして、ぜひ、仮想GPUの採用を検討して欲しいと思います。

 

 

2) NVIDIAの仮想GPUソリューションを活用する新たなワークロード

この章では、従来のCADワークステーション用途、そして、広がるOA用途に続き、新たに注目される用途・ニーズについて、紹介したいと思います。仮想GPUテクノロジーを提供するNVIDIAは、2019年夏にサンフランシスコで開催されたVMworld2019のタイミングで、「vCOMPUTE SEVER」を発表しました。

この vCOMPUTE SERVERは、仮想GPUがGPUコンピューティング用途に対応した事を意味しており、もう少し具体的に挙げると、GPUを画像処理ではなく、

シミュレーション、解析、機械学習、深層学習(ディープラーニング)のような用途に活用できるようになったということです。

もちろん、大規模な気候シミュレーション、天体や衛星軌道のシミュレーションは、ひとつのGPUを分割するvGPUの方式ではなく、いわゆるスパコン(クラスタ)が活躍する世界です。ですが、世の中のシミュレーションや学習ワークロード全てが、大量のGPUを必要するわけではなく、ワークステーションやサーバーで計算するようなものは、仮想化して、GPUを複数の仮想マシンで共有する環境に移行することで、コスト的に導入しやすく、また、その時々に必要なGPUパワーを分割して割り当てることで、効率的な利用が可能(みんなが使いやすい計算環境)になります。さらに、VMware Horizonの画面転送を併用することにより、計算結果(大容量データ)を端末にダウンロードの時間を待たず、データセンター内に置いたまま、可視化やデータ処理を行うことが可能です(みんなが使いやすい計算環境になります・再)。

 

ちなみに、、、計算系に詳しい方は、もしかしたら、「仮想GPUって、ECCやメモリページリタイアメントに対応してなくて信頼性が低いんじゃないの?」と思うかもしれません。ECC(Error-correcting code)は、内部データ破損を検出し修正する機能で、Page Retirementは、エラー印を付けたメモリセルのページうぃ自動的にオフラインにする機能です。旧バージョンのNVIDIA vGPU ソフトウェアは、このECCやPage Retirementは非サポートでしたが、Ver.9 (R430)から、サポートになっていますので、ご安心ください。

 

・NVIDIA vGPU Software Documentation (R430 for VMware vSphere Release Notes)

  https://docs.nvidia.com/grid/9.0/grid-vgpu-release-notes-vmware-vsphere/index.html

 

・NVIDIA仮想GPUソリューションの詳しい情報は、NVIDIA社員はもちろん、VDIの経験も豊富なNVIDIA認定パートナーもおられますので、ぜひ、ご相談してみてください!

 

最後に、自分の好きな「i am ai」の動画で締めたいと思います!

 

12/20のMakoinさんからのバトンを受けて、私からはVMware環境でも利用可能なGPUネタでした!

MakoinさんのHorizonネタの投稿「Windows 10 からのアプリケーション公開」は待望の機能だったんで、とても役に立つ内容かと!興味ある方はぜひ!

 

そして、vExperts Advent Calendar 2019 22日目は yukiさんです。よろしくお願いしまっす!

 

vEXPERT2019 山辺 (twitter @virtapp_life

vEXPERT_7stars.pngvEXPERT_2019.png

vEXPERTについては → https://vexpert.vmware.com/

 

(免責)

本ブログは私が個人的に行っているブログであり、所属する会社とは関係ありません。本ブログ内の情報は、個人の見解、個人で調査した情報を記載していますので、間違っていることもあります。正確性を保証するものではありませんので、ご了承ください。

For updates on this blog and other blogs, follow me on Twitter: @SteveIDM

 

We mostly talk about SAML with Workspace ONE but i'm asked occasionally if Workspace ONE Access can support OpenID Connect? The answer is yes, of course it can.  Just keep in mind before you start to configure OpenID Connect, Workspace ONE Access only supports the email, profile and user scopes.There is no support for custom scopes nor the ability to modify the attributes that are returned in the provided scopes.

 

Workspace ONE Access supports the Authorization Code Grant as well as Client Credentials.

 

Lets walk through the process to setup an OIDC Application. We are going to use the OpenID Debugger application from Auth0.

 

Create the SAAS Application

 

  1. In the Workspace ONE Administration Console, go to Catalog -> Webapps
  2. Click New
  3. Provide a Name: ie. OpenID TestApp
    Screen Shot 12-18-19 at 02.33 AM.PNG
  4. Click Next
  5. Select OpenID Connect from the Drop List
    Screen Shot 12-18-19 at 02.33 AM 001.PNG
  6. Complete the fields as per your application requirements.  The following is a sample for Auth 0 Client Connect App.
    AttributeValue
    Target URL
    This is just a web link to the target application
    https://openidconnect.net/
    Redirect URL
    If you need more than one redirect URL's you can add them later. Only one will be accepted here.
    https://openidconnect.net/callback
    Client ID
    Enter any Client ID that will be used in the calling application. Do Not Use Spaces or special characters.
    MyOIDCTester
    Client Secret
    Enter a secret that will be used by the calling application.
    ThisIsMySecretKey
    Screen Shot 12-18-19 at 02.35 AM.PNG
  7. Click next
  8. Click Save
  9. Assign this application to your users.

 

Modify the Remote App Access Client

A remote app access client will automatically get created. We will need to modify this client.

 

  1. Go to Catalog -> Settings
  2. Click on Remote App Access
  3. In the Client List, look for the Client ID that was used in the earlier step. In my example, I used "MyOIDCTester"
  4. Click on the Client ID
  5. Under Scopes, Click Edit
  6. Select Email and Profile

    Note: This will remove the Admin scope. If you really need to keep the admin scope you will need to perform this step using the API.

  7. Click Save
  8. If you want to prompt the user to authorize the user grants, you will need to do the following steps: I will skip this step for now.
    1. Click Edit beside Client Configuration
    2. Select "Prompt Users for Access"

 

Testing with the Auth0 OpenID Connect Debugger

  1. Go to https://openidconnect.net/
    Screen Shot 12-18-19 at 03.33 AM.PNG

  2. Click on Configuration
    AttributeValue
    TemplateCustom
    Discovery URL

    https://[tenant]//SAAS/auth/.well-known/openid-configuration

    ie.

    https://dsas.vmwareidentity.com/SAAS/auth/.well-known/openid-configuration

    Authorization Token Endpoint

    https://[tenant]//AAS/auth/oauth2/authorize

    ie.

    https://dsas.vmwareidentity.com/SAAS/auth/oauth2/authorize

    Token Endpoint

    Token Keys Endpoint

    https://[tenant[/SAAS/auth/oauthtoken

    ie.

    https://dsas.vmwareidentity.com/SAAS/auth/oauthtoken

    OIDC Client IDMyOIDCTester
    OIDC Client SecretThisIsMySecretKey
    Scopeemail profile user openid
    Screen Shot 12-18-19 at 04.15 AM.PNG
  3. Click Save
  4. Click Start
  5. When prompted to Authentication, select your domain based credentials (Do no use System Domain)
  6. If you selected "Prompt Users for Access" they will be prompted and required to Allow Access:
  7. You will now see your Authorization Code in the OIDC Debugger. Click Exchange to get your Access Token.
  8. You will now see your Bearer Token, ID Token and your Refresh Token.
  9. Click Next
  10. The ID Token will contain information regarding the identity. Click "View on JWT.IO" to see your JSON Tokens.
  11. You JWT Token will be displayed with your profile and user data:

Many people have confusion sight about how really a host assigns CPU resource to the virtual machines; More precisely I can say how the processing operation of a VM has been executed via the physical CPU resources. In the Intel terminology, the physical processor is a CPU socket, but in this post, I consider the pCPU as a physical core in the existing sockets of servers.

By default, each of the added vCPU to the VMs is assigned to one of the existing pCPUs. So if we configure 8 vCPU for a VM, there must exist at least 8 pCPU in the host. In other words, if there is not enough pCPU for the VM, it cannot be started.

Based on design, VMware ESXi can handle the CPU oversubscription (request of vCPU more than existing processors/pCPU). It means the pCPU~vCPU ratio is not one by one (1:1) anymore. In the vSphere environment, the ESXi host will handle the processing operations to execute requests of every VM, then the host needs to schedule processing time for each of them. But here the question is what ratio should be configured as the best settings? The answer depends on choosing Capacity or Performance aspects, really it can be very different based on the virtualized application requirements ...

Each VM needs the pCPU resources, then implementation of many VMs specially highly-applicable and resource-consumption virtual machines demand more CPU clocking. So if you provision more VMs and also increase the pCPU~vCPU Ratio (1:2, 1:4 or greater) the performance of the ESXi host will be affected.

As the VMware mentioned vSphere ESXi scheduling mechanism prefers to use the same vCPU-to-pCPU mapping to boost performance through CPU caching on the socket. If there is no specific documentary for the CPU design of the Application, you can set it up with a single vCPU, then scale up based on requires. So oversubscription will not have a serious negative impact.

Also, we must consider the CPU Ready Time is another important metric as the  CPU utilization metric is. Generally, vCPU~pCPU ratio is based on many factors like the following:

  1. Version of ESXi host. Each newer version supports more ratio.
  2. Supported features and technologies by physical processor.
  3. Workload rates of critical Applications that are implemented in the virtual environment.
  4. The capacity of existing processor resources in other members of the cluster and their current performance, especially when we require a higher level of hosts fault tolerance in the virtualization infrastructure. Available resources in the cluster will specify each VM that can be placed on which host in front of a host failure.

 

Should we use Hyperthreading or not ?!

Hyperthreading is a great technology that makes a single pCPU act as the two logical processors. In the case of the low-usage of ESXi host, each of those logical cores can handle two independent applications at the same time. So if you have 16 logical processors in the ESXi host, after enabling of HT (In both of the BIOS config and ESXi advanced settings) you will see the host has 32 logical processors. But using HT does not mean performance is increased always and it's highly dependent on application architecture. So in some cases maybe you encounter performance degradation via HT usage. Before enabling of HT in the ESXi hosts, review critical virtualized applications deploy on their VMs.

Source of original post in my personal blog: Undercity of Virtualization: Virtualization Tip1: Relation between physical CPU & virtual CPU

1 2 Previous Next

Actions

Looking for a blog?

Can't find a specific blog? Try using the Blog page to browse and search blogs.