svnserve install

git-svn 使用にあたって


trunk, branches, tags で commit

VM×非管理ディスク


2019/7/8現時点では、非管理ディスクではなく、Microsoft自身も推奨する管理ディスクを利用する方が一般的だと思うので、非管理ディスクでVMを作成することは余り無いのだと思う。

次のような場合に。

・過去に作成したVMの停止/削除を行いたい場合、

・何らかの理由があって、非管理ディスクでVMを作成しようとする場合

 

VMの作成


VMを非管理ディスクで作成した場合。

ストレージアカウントのBLOBに、1BLOBとしてVHDファイルが保存される。

ディスク30GBなら、30GBのファイル。

「vhds」というコンテナの中に、次のファイル名でBLOB単位で保存される。

{VM名}yyyymmddhhiiss.vhd

 

VM作成画面では、デフォルト「管理ディスク」となっているので、

明示的に「非管理ディスク(及び保存対象のストレージアカウント)」を指定する必要がある。

 

料金は、¥5.04/GB~

https://azure.microsoft.com/ja-jp/pricing/details/storage/page-blobs/

=\150.12/月~

 

非管理ディスクの場合、既存のディスクから作成することはできなかった。

(※portal上の操作を確認する限り)

(後の復元手順に影響)

 

VMの停止


VMが暫く不要になった場合、金額的には、VMを停止して放っておく、でも良いのだろうと思われる。

 

VMの削除


VMを削除しても次のリソースは残るので注意

・IPアドレス

・セキュリティグループ

・ネットワークインタフェース

 

新規で作成していれば、

・ストレージアカウント(ディスク用)

・ストレージアカウント(診断用)

・仮想ネットワーク

※作成の仕方によっては他にも発生する

 

パブリックIP

静的IPアドレスは、

¥0.896/時間 =\666.624/月

動的IPアドレスは、リソースが解放されるので問題なし。

 

ディスク

VMを削除しても、対象のストレージアカウントの中に、ページBLOBのVHDファイルが残る。

削除対象のBLOBファイルは、VMの名前から判断する。

また、状態が「リース解除」になっている。

対象のディスクは、リソースグループ → [対象のリソースグループ] → デプロイ から、

VM作成時のディスク名を確認することができる。

※が、VM削除後にディスクリソースを開いても、読み込み待ちのまま、情報が表示されなかった。

 

VMの復元

非管理ディスクのVMを復元する場合は、VMイメージを作成する必要があるため、VMを削除してしまうと、イメージを作成できず、復元がしにくい、ということになるのだと思われる。

次の記事中に、「PowerShell から仮想マシンを作成する」方法の記載がある。

https://blogs.technet.microsoft.com/jpaztech/2018/09/21/arm-vm-replication-part-1/

後に示すように、VHDファイルから管理ディスクへの移行が行えるため、管理ディスク利用のVMへの移行が現実的と思われる。

 

VMのイメージを作成


コスト面からVHDファイルを保持せずにどうにかしようという事は余り無いと思うが、

VHDファイルを削除して、後から復元しようとする場合は、下記の方法?

・VHDファイルのダウンロード/アップロード

・VMのイメージを作成

※イメージにした場合、30GB(元のVHDファイル)からどの程度小さくなるのか?

非管理ディスクのVMを作成する方法は下記。

https://blogs.technet.microsoft.com/jpaztech/2018/09/21/arm-vm-replication-part-1/

下記が面倒。

・Azure VM エージェントでVMを汎用化する必要がある

・そのVMは利用できなくなる

・VMのイメージ作成はportalで行えず、PowerShellを利用する必要がある

 

管理ディスクへ移行する


幾つかの方法が考えられる。

・既存のVM(非管理ディスク)を新VMへ移行

・既存のVM(非管理ディスク)を残したまま、新VM(管理ディスク)を作成

・VHDファイルから管理ディスクを作成して、VMを作成

・VHDファイルからスナップショット→管理ディスクを作成、VMを作成

 

既存のVM(非管理ディスク)を新VMへ移行

既存のVM自体をそのまま移行したい場合はこの手順

非管理ディスクのVHDファイルはBLOBストレージ上に残るので、不要な場合は、別途削除処理等を行う必要がある。

 

・次の方法で、「マネージド ディスクに移行」に画面遷移

・VM画面上の「~、Managed Disks に移行してください。」案内から

・VM「ディスク」画面の「マネージド ディスクに移行」から

 

・VMが起動中の場合は、停止→開始の動きになる

・VMが停止中の場合は、開始される

 

管理ディスクが作成され、自動的にVMの既存(非管理ディスク)がデタッチされ、

作成された管理ディスクがアタッチされる。

既存(非管理ディスク)のBLOBのリース状態は「利用可能」になる。

 

★「管理ディスク」名称のprefix に自動でハッシュキーが付くため、綺麗に管理するなら嫌かも

 

VHDファイルから管理ディスクを作成して、VMを作成

「ディスク」から「追加」を選択

「マネージドディスクの作成」画面で下記を選択して作成する。

ソースの種類:ストレージBLOB

ソースBLOB:既存(非管理ディスク)のBLOBを

 

作成した管理ディスクで、「VMの作成」を選択して作成する。

この場合、幾つかの情報は管理ディスクに含まれているため、新規にVMを作成する場合と比べて、入力する必要がない。

・地域は固定

・管理者アカウント、SSH接続情報は求められない

 

・起動中のVMに紐づく状態が「リース中」のVHDも選択可能

※ファイル整合性は未確認

 

スナップショット


非管理ディスクにも「スナップショット」があるが、管理ディスクのそれとは異なる。

(コンソール上で確認した限りだと)

これはあくまで、対象のVHDファイルであるページBLOB内に閉じた機能で、

ページBLOBを取得したスナップショット状態に変更(「昇格」と表現)する等が行える。

取得したスナップショットから管理ディスクを作成したり、を行うものではなさそう。

※上述した管理ディスク作成で、スナップショットのURLを指定できるか等は未確認

 

VM×管理ディスク


今後一般的と思われる管理ディスクの場合。

 

VMの作成


非管理ディスクの場合とほぼ同様。

VM作成画面では、デフォルト「管理ディスク」となっているので、そのまま作成する。

 

VMの停止


管理ディスクは、Standard HDD S4 32GiB で、¥172.04/月~ かかる。

スナップショットは、¥5.6/GB なので、実データサイズが 10GBの場合、\56/月~ なので、

多少コストメリットはある。

VMの復元もそれほど手間ではないので、スナップショットにしておくのが良いだろうと思われる。

※イメージにすると、汎用化されるのでVMが使用できなくなる

 

VMの削除


非管理ディスクの場合は、削除してしまうと復元が多少面倒になるが、

管理ディスクの場合は、また「VMの作成」を行えば良い。

 

『windows 10 virtual desktop enhancer』の使い方

『windows 10 virtual desktop enhancer』の主な機能としては以下の通りです。

  • タスクトレイに表示されている数字は、現在の仮想デスクトップ番号を表示
  • 仮想デスクトップ毎に壁紙設定が可能
  • 「Alt」+「0〜9」で、仮想デスクトップを切り替える
  • 「Alt」+「←」「→」で、仮想デスクトップの前後に切り替える
  • 「Alt」+「Shift」+「Ctrl」+「0〜9」で、現在のウインドウを指定した仮想デスクトップに移動する
  • 「Alt」+「Shift」+「Ctrl」+「←」「→」で、現在のウインドウを前後の仮想デスクトップに移動する
  • 「Alt」+「Shift」+「0〜9」で、現在のウインドウを指定した仮想デスクトップに移動&切り替え
  • 「Alt」+「Shift」+「Ctrl」+「←」「→」で、現在のウインドウを前後の仮想デスクトップに移動&切り替え
  • アイコンをクリックすることにより、仮想デスクトップの切り替え画面の呼び出し

 

 

【Windows 10】仮想デスクトップをさらに使いやすくカスタマイズ!『windows 10 virtual desktop enhancer』

実動作では何もジョブが実行されない場合に、10分で terminated されていた。

 

コンピューティング環境一つに対して、Auto  Scalingグループが作成されており、

次のログが出ていた。

Terminating EC2 instance: i-0a0d23067827fb809
2019 July 5 03:17:14 UTC+9
2019 July 5 03:18:19 UTC+9
説明:説明Terminating EC2 instance: i-0a0d23067827fb809
原因:原因At 2019-07-04T18:17:14Z instance i-0a0d23067827fb809 was taken out of service in response to a user request, shrinking the capacity from 1 to 0.

 

下記だろうか。外部が指定している?AWS Batchが指定している?

https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/APIReference/API_TerminateInstanceInAutoScalingGroup.html

 

クールダウンの300秒が関係している?

 

他、

AWS Batchを使って5分以上かかる処理を実行してみる

調査中。

確認したAMI

amzn-ami-2018.03.u-amazon-ecs-optimized (ami-0e1aa8c2e9d719f58)
`
起動AMIから確認。

docker利用において、

docker内の以下や

ホストOS側の以下が出る場合がある。

 

生成したファイルに、rm をしない場合は、ゴミが残る。

docker system prune -fで解放される。

 

コンテナサイズ、デフォルト10GBを超えた場合も、

やはり、docker system prune -fで解放される。

 

上記以外で、rmでファイルを消した場合は、ほとんどゴミデータは残らない。

 

ゴミデータを残ったままにすると、ブロックデバイスを全て消費して、docker自体起動できない等の状態になる。

 

ホストOS側からは、次のように動的マウントのマッピングが見える。

 

確認したAMI

amzn-ami-2018.03.u-amazon-ecs-optimized (ami-0e1aa8c2e9d719f58)

docker -v

Docker version 18.06.1-ce, build e68fc7a215d7133c34aa18e3b72b4a21fd0c6136

対応前

Docker上で10GBファイル生成

対応後

ホストOS

結局40GBまではかける

ホストOS

Docker終了後

再起動すると。/tmp配下ファイルが無い?

docker rmi してもホストOSの容量が減らない、

差分ファイルが全部残っていた

特定のDockerコンテナに溜まった大量のゴミファイルの掃除

AWS BatchはAMI IDが、Manged by Batch になっていて、docker versionがわからない。

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/container_agent_versions.html

https://stackoverflow.com/questions/46672001/is-it-safe-to-clean-docker-overlay2

 

下記で解消された

 

https://github.com/moby/moby/issues/32420

https://github.com/moby/moby/issues/21925

http://docs.docker.jp/engine/reference/commandline/dockerd.html#daemon-configuration-file

https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/docker-basics.html
に従って実施

python3.7

 

python3.6

 

Python2.7

2.7でもboto3-1.7.74.dist-info

  • Lambda pythonバージョン

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/python-programming-model.html

 

boto3 s3 署名バージョン対応

1.5.71 (Botocore)、1.4.6 (Boto3) にアップグレード。

【超重要】対応しないと使えなくなるかも?!今、全S3ユーザがチェックすべき署名バージョン2の廃止について

 

pythonコード

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingAWSSDK.html

すべての AWS リージョンでは、AWS SDK はデフォルトで署名バージョン 4 を使用してリクエストを認証します。2016 年 5 月以前にリリースされた AWS SDK を使用する場合、次の表に示すように、署名バージョン 4 のリクエストが必要になることがあります。

[s3] use-sigv4 = True

 

5af85bf0