仮想マシンを停止することなくLVMでディスク容量を追加する

OS:CentOS Linux release 7.7.1908
LVM: 2.02.185(2)-RHEL7
VMware Workstaion 15 Pro 15.5.2 build-15785246

既に稼働中の仮想マシンを停止せずにディスク容量を増すよう指令を受け実践するものである。然し乍ら追加したいディスクの種類がIDEとNVMeの場合は稼働中、新たに追加すること能わぬからこういう場合、関係者とマシン停止の機会を何としてでも調整せねばならない。まずは現状のブロックデバイスを把握する。

$ lsblk -i
NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                      11:0    1 1024M  0 rom
nvme0n1                 259:0    0   20G  0 disk
|-nvme0n1p1             259:1    0    1G  0 part /boot
`-nvme0n1p2             259:2    0   19G  0 part
  |-centos_centos7-root 253:0    0   17G  0 lvm  /
  `-centos_centos7-swap 253:1    0    2G  0 lvm  [SWAP]

そうしたら仮想マシンにディスクを追加する。

仮想マシンが稼働中であるとIDEとNVMeの仮想ディスクは追加できない

恙無くディスクが追加されたら改めてブロックデバイスを一覧すると新たにsdaというブロックデバイスがあるからこれが先に追加したディスクであろうと見当が付く。

$ lsblk -i
NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                       8:0    0   20G  0 disk
sr0                      11:0    1 1024M  0 rom
nvme0n1                 259:0    0   20G  0 disk
|-nvme0n1p1             259:1    0    1G  0 part /boot
`-nvme0n1p2             259:2    0   19G  0 part
  |-centos_centos7-root 253:0    0   17G  0 lvm  /
  `-centos_centos7-swap 253:1    0    2G  0 lvm  [SWAP]

このあとの手続きは物理ボリューム、ボリュームグループ、論理ボリュームそれぞれの作成である。先ずは追加したブロックデバイス /dev/sda をLVMで扱うために物理ボリュームとして初期化する。

$ sudo pvs
  PV             VG             Fmt  Attr PSize   PFree
  /dev/nvme0n1p2 centos_centos7 lvm2 a--  <19.00g    0

$ sudo pvcreate /dev/sda
  Physical volume "/dev/sda" successfully created.

$ sudo pvs
  PV             VG             Fmt  Attr PSize   PFree
  /dev/nvme0n1p2 centos_centos7 lvm2 a--  <19.00g    0
  /dev/sda       centos_centos7 lvm2 a--  <20.00g    0

/dev/sda が物理ボリュームとして追加されているから引き続き之を元にしてボリュームグループを作成する。ボリュームグループ名である centos_centos7 を用いてボリュームグループを作成した。

$ sudo vgs
  VG             #PV #LV #SN Attr   VSize   VFree
  centos_centos7   1   2   0 wz--n- <19.00g    0

$ sudo vgextend centos_centos7 /dev/sda
  Volume group "centos_centos7" successfully extended

$ sudo vgs
  VG             #PV #LV #SN Attr   VSize  VFree
  centos_centos7   2   2   0 wz--n- 38.99g    0

次に論理ボリュームを追加する。ボリュームグループ centos_centos7 の内、論理ボリューム root の容量を拡張したいからlvextendコマンドでこうである。

$ sudo lvs
  LV   VG             Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos_centos7 -wi-ao---- <17.00g
  swap centos_centos7 -wi-ao----   2.00g

$ sudo lvextend -l +100%FREE /dev/mapper/centos_centos7-root
  Size of logical volume centos_centos7/root changed from <17.00 GiB (4351 extents) to 36.99 GiB (9470 extents).
  Logical volume centos_centos7/root successfully resized.

$ sudo lvs
  LV   VG             Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos_centos7 -wi-ao---- 36.99g
  swap centos_centos7 -wi-ao----  2.00g

最後にファイルシステムの拡張を実施する。XFSファイルシステムで構成されているから xfs_growfs コマンドで以って拡張する。

$ df -Th
ファイルシス                    タイプ   サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos_centos7-root xfs         17G  1.5G   16G    9% /

$ sudo xfs_growfs /dev/mapper/centos_centos7-root
meta-data=/dev/mapper/centos_centos7-root isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4455424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

$ df -Th
ファイルシス                    タイプ   サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos_centos7-root xfs         37G  1.5G   36G    4% /

これでようやっとディスク容量の拡張が達成された。

仮想化ベースのセキュリティが有効であるとVMware Workstationの仮想マシンが起動できない

Windows 10 Pro Version 1909
VMware Workstation 15 Pro 15.5.1
CPU: Intel Core i7-3520M

自端末へ VMware Workstation 15 Pro をインストールして幾ばくかの時間を隔てたのちに改めて仮想マシンの起動を試みたところ、見慣れぬエラーメッセージに見舞われて面食らった。曰く、

VMware Workstation と Device/Credential Guard には互換性がありません。VMware Workstation は Device/Credential Guard を無効にした後で実行することができます。詳細については、 http://www.vmware.com/go/turnoff_CG_DG を参照してください。

とのことである。調べてみるとWindows Defender Application GuardやWindows サンドボックスを導入すると仮想化ベースのセキュリティが有効になって、此れがVMware Workstationと相容れない情勢であるBIOSでIntel VT-xを有効にしてあっても無効であるものと判断されている。

何もしていないのに壊れたと憤慨したものであるが、Windows サンドボックスを有効にした覚えがある。何もしていないのに壊れたという申し立ては必ず嘘である。

こういう事では困るから慌ててWindows サンドボックスを無効にしたのであるけれども此れがちっとも効果が無い。コマンドプロンプトからmsinfo32を立ち上げて「システムの要約」→「仮想化ベースのセキュリティ」項目を確認すると値は「実行中」である。はてな、此は如何にと思案に暮れているとどうも無効にする手順が別に在る模様である。

先ずはローカルグループポリシーエディターを起動して、「コンピューターの構成」→「管理用テンプレート」→「システム」→「Device Guard」と辿る。そうして二つの設定「Windows Defender アプリケーション制御を展開する」「仮想化ベースのセキュリティを有効にする」を無効とする。

次いで幾つかのレジストリキーを削除する。

HKLM\SYSTEM\CurrentControlSet\Control\Lsa\LsaCfgFlags
HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard\LsaCfgFlags
HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard\EnableVirtualizationBasedSecurity
HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard\RequirePlatformSecurityFeatures

自端末には EnableVirtualizationBasedSecurity しか見当たらなかったから此れのみ削除した。続いてコマンドプロンプトを管理者として実行して以下のコマンドを放り込む。全体どういう了見でこのUUIDが世に出たか知れないけれども兎に角、効く。

mountvol X: /s
copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y
bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.efi"
bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:
mountvol X: /d

ここまでこなしたら端末を再起動する。起動中に Credential Guard を無効にするか否かを問われ、無効にするならWindowsキーもしくはF3キーを押下する。時間制限があるからもたついていると何もせぬままに起動が進行してしまう。

あらためてmsinfo32を実行すると無事、仮想化ベースのセキュリティが無効になり仮想マシンの起動も恙無く済んだ。VMware Workstation ProとWindows サンドボックスの両立はむつかしいようであるから欲を張らずに、仮想化ベースのセキュリティを都度、有効か無効に切り替えてどちらかを選ぶしかないようである。

参考:
Windows Defender Credential Guard の管理
“VMware Workstation and Device/Credential Guard are not compatible” error in VMware Workstation on Windows 10 host (2146361)

CentOS インストール時の画面解像度を変更する

OS: CentOS Linux 8
VMware Workstaion Pro 15

CentOSのインストールを試みる度に悩まされる事柄が画面の解像度である。インストール画面の右側及び下側が表示領域に収まりきらず文言が見切れたりボタンが押し難くなる。これを改善するにはカーネルの起動パラメータを編集する。

インストーラのブートメニューが表れたらTABキーを押下するとカーネル起動時のパラメータに手を入れる事ができるようになるから、ここで rd.live.check を取り除いて resolution=1280x800 などとして800×600よりも広めの解像度を渡すことで見切れていた箇所を顕にできる。

デフォルトのカーネル起動パラメータ

この際キーボードがUS配列になっているから「=」の入力を実現するには「=」の右隣にある「~ ^ へ」のキーを押し込む。

けれどもパッケージのインストール途中に思いがけず解像度を800×600に戻されてしまいボタンが全く不可視になって却って苦しくなるから、多少の不便を受け入れてデフォルト解像度のままインストールをおこなうほうが結局は首尾よく事が運ぶようである。ままならずもどかしいものである。

すべての情報が表示されて快適な様子1
すべての情報が表示されて快適な様子2
ボタンがまったく表示領域の外へ隠れてしまう様子
カーネル起動パラメータを編集せずにインストールを進めた場合

Ubuntu Desktop 18.04 LTSにKVMを導入しCentOS7を試験的にインストールする

OS: Ubuntu Desktop 18.04 LTS 日本語 Remix
CPU: Intel Core i7-4790 processor

仮想化技術の一であるKVM(Kernel-based Virtual Machine)もLPIC-3 304 Virtualization and High Availabilityの出題範囲でまことに大きな比重を占めており微塵も軽んずること能わず導入が急がれる情勢である。KVMの導入には仮想化支援機能を有したCPUがマシンに搭載されていなければならない。仮想化支援機能のあるやなしやを掴むにはこうである。

$ grep -cE '(vmx|smv)' /proc/cpuinfo

0よりも大きな自然数が返ればKVMの導入が叶うけれども0の場合は仮想化支援機能のあるCPUを買い求めに店頭へ走らねばならない。また、仮想化支援機能がBIOSの設定で無効にされている場合もあるから詳らかに探るなら $ sudo apt install cpu-checker でcpu-checkerパッケージを導入して $ sudo kvm-ok を実行すると宜しいようである。

$ sudo kvm-ok
INFO: /dev/kvm does not exist
HINT: sudo modprobe kvm_intel
INFO: Your CPU supports KVM extensions
INFO: KVM (vmx) is disabled by your BIOS
HINT: Enter your BIOS setup and enable Virtualization Technology (VT),
and then hard poweroff/poweron your system
KVM acceleration can NOT be used

加えてVMware Workstation上で動作するOSに対してKVMを導入するのであれば仮想マシンの設定にも気を配らねばならない。「Processors」の設定にある「Virtualize Intel VT-x/EPT or AMD-V/RVI」にチェックを入れておかねば折角の仮想化支援機能が台無しである。

あとはKVMをインストールして終いである。必要になるパッケージはUbuntuのバージョンによって異なる風情であるけれども、Ubuntu 18.10で求められるパッケージをUbuntu 18.04に導入してもなんとなく動いているようである。

Ubuntu 10.04以降
$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Ubuntu 18.10以降
$ sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

試験的にKVMで以ってCentOS7の導入に取り組む。まずはディスクイメージを作成する。centos7.imgという名の10GBの容量を持つqcow2(QEMU Copy On Write version 2)形式のディスクイメージを生みだすならこういった具合で間に合う。

$ qemu-img create -f qcow2 centos7.img 10G
Formatting 'centos7.img', fmt=qcow2 size=10737418240 cluster_size=65536 lazy_refcounts=off refcount_bits=16

予めCentOS7のISOファイルをダウンロードして手元に用意しておく。

$ wget -c http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso

先に作成したディスクイメージcentos7.imgにCentOS7をインストールする。インストールのために一度だけCD-ROMから起動するよう指定するなら -boot once=dである。

また特段の指定がなければ仮想マシンのメモリ容量は128MBにセットされるけれども十分でないのかインストーラがカーネルパニックで打ち切りの憂き目に遭うから -m 512 として512MBを割り当てるのが良さそうである。

$ sudo kvm -hda centos7.img -cdrom CentOS-7-x86_64-DVD-1810.iso -boot once=d -m 512

インストールを済ませたらあとはCentOS7を起動するばかりである。

$ sudo kvm -hda centos7.img -m 512 -monitor stdio 

参考:
KVM/Installation
KVM

VMware Workstation 14 Pro上にXenServerを導入する

VMware Workstation 14 Pro 14.1.1 build-7528167
XenServer 7.6.0

LPIC-3 304 Virtualization and High Availabilityの学習を進めるにあたって、出題範囲の一であるXenは出題の比率も高そうであるし実際に触れてみるのが内容を呑み込むのに近道であるとおもうから導入するものである。

先ずはXenServerのISOファイルを手に入れる。Citrixのアカウントがあって且つログインしていなければ入手は能わないからまずアカウントの作成である。アカウントはCreate a new Citrix account – Citrixのページから作成できる。

アカウントを作成したらサインインする。そうしてXenServerのダウンロードページへアクセスし、プルダウンメニューから「XenServer 7.6.0 Base Installation ISO -Free Edition」を選択し「Download File」を押下すればISOファイルを入手できる。2019年1月8日の時点でXenServerのバージョンは7.6.0が最新である模様である。

ダウンロードの前には輸出管理とか云うやつの規約についての同意を求められる。全面的に英語による文面であるから読み解くのは誠に難儀したけれどもGoogle翻訳が大いに助けとなった。ちかごろの翻訳精度は質的に高度な発展を遂げていると感ずる。

掻い摘んで内容を追いかけたところ、XenServerは米国の輸出管理規制の対象であり、法に抵触する輸出入や再輸出・譲渡は此れをしてはならぬし、他人のそういった企てを手助けしてもならぬという。またキューバ、イラン、北朝鮮、スーダン、シリア及び米国が輸出入を禁止している国の市民や居住者であってはいけない。そして米国政府の許しなくしては、いかなる核兵器、化学兵器、生物兵器またはミサイル技術に関する最終用途のためにXenServerを活用したり譲渡してもいけない。というような風情であった。

内容を飲み込んで受け入れたらAcceptボタンをクリックすることでXenServerのISOファイルのダウンロードが始まる。容量は715MBにも及ぶから保管場所の空き容量には気を配らねばならない。ISOファイルを保存したら次は仮想マシンの作成に取り掛かる。

VMware Workstationを起動して仮想マシンの作成を始めてゆく。

インストールするゲストOSの種類はひとまずLinuxのOther Linux 4.x or later kernel 64-bitを選択したけれどもあとから設定は自在に変更できるから概ね何をチョイスしても良さそうな風情である。

ホストOSに搭載するCPUのスペックはx86系で最低でも1.5GHzのものが良いようである。2GHz以上のマルチコアプロセッサならばなお良いという。

要求されるメモリの容量は最低限2GBで、おすすめは4GB以上であった。ちかごろは16GBで15000円程度というから以前に比べると本当に求めやすくなったものである。

ディスクの容量は最小で46GB、推奨されている容量は70GBであった。

もう一箇所設定を変更する用事があるから、 仮想マシン作成後に自動的に起動してこないよう「Automatically power on this virtual machine after creation.」のチェックを外しておく。

仮想マシンのプロセッサに関わる設定画面を開いて「Virtualize Intel VT-x/EPT or AMD-V/RVI」にチェックを入れておく。こうすることによって完全仮想化がサポートされてゲストOSとしてWindowsもインストールすることができるようになる。

そうしてISOイメージから起動するとXenServerのインストーラが立ち上がる。press the <ENTER> keyとあるけれどもEnterキーを押し付けなくても数秒ののちに自動でインストールウィザードへ移ろうからmemtestを実施したりsafeモードで立ち上げたいなら多少慌てねばならない。

使用許諾契約に同意するか否かの岐路である。大変長い文章であるから大急ぎでXenServerを導入したい向きには大いに困るであろうとおもう。英文を読み解くだけでも大事業であるからつい読みもせずAccept EULAを押してしまうのが常である。然し乍ら一番最後まできっちり読むと金銭を貰えるようなエンドユーザライセンスアグリーメントも世の中にはあるようであるから、moneyであるとか$のように金銭に関わりのありそうな文字列に気を配りつつサッとスクロールしたけれどもどうもそういった内容は見つけられなかった。

このメッセージは仮想化支援機能が無いか有効にしていない場合にお出ましになる。ゲストOSにWindowsのインストールを検討しているなら大変問題であるからうまい具合に解決しておくべき課題である。

時刻合わせはNTPサーバに頼るのが楽ちんでよいとおもう。日本で使用するならntp.nict.jpを指定して日本標準時を取得するのが都合がよい。

Supplemental Packsをインストールするか否か問われる。XenServerの機能を拡張できるような雰囲気の説明が見つかったけれども忽ち必要でないからインストールはしない。

インストールが完了すればあとはXenServerを起動するばかりである。