Coder Social home page Coder Social logo

hitorigoto's People

Contributors

satokaz avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

hitorigoto's Issues

Solaris 11.4 で利用可能な USB-Ethernet Adapter

Murayama-san's driver 健在!
お守り代わりに持っておくと、何かの時に役にたつ。
と言うわけで、Solaris 11.4 でも利用可能な USB Ethernet Adapter をメモ。

driver の入手

下記から:

といっても、選択肢は 2 つしかない感じ:

  • 27. axf driver for ASIX AX88172/872 usb2.0 to fast ethernet controller
  • 28. axg driver for ASIX AX88178/179 usb2.0/3.0 to giga bit ethernet controller

動作確認できている USB-Ethernet Adapter

いずれも、最低限の通信ができていることしか確認しておらず。
Solaris で提供される network 機能がきちんと使えるかは確認していない。

axf driver

axg driver

GIgabit といいっても、iperf3 で計測では 300Mbps もでないので期待はしない方が良い。

US Amazon

Oracle Solaris 11.4 SRU30 on Mac mini Late 2014

onboard Gigabit NIC は使えない

pci14e4,1686 なので、標準の bge driver は attach させても利用できない:

pci bus 0x0003 cardnum 0x00 function 0x00: vendor 0x14e4 device 0x1686
 Broadcom Inc. and subsidiaries NetXtreme BCM57766 Gigabit Ethernet PCIe

Xorg は使えない

solaris-desktop をインストールしても、GUI はまともに使えず画面が壊れてしまうので、下記のパッケージを抜いておく。
依存関係を持っているので、必ずこの順番で実行すること:

# pkg uninstall xorg-video-intel
# pkg uninstall driver/graphics/drm

SSD モデルは、残念ながら使い物にならない

Apple PCI SSD は、ahci driver が attach するが、watchdog reset storm で使い物にならない。どのくらい使い物にならないかというと、mkfile 1g が 30 分くらいかかる。それくらい使いものにならない

NVMe に換装する

NVMe に換装することで、Solaris 標準の nvme driver が attach する。

OS 標準の nvmeadm コマンドは利用できない。

image

prtconf -D

kazus@solaris:~$ prtconf -D
System Configuration:  Oracle Corporation  i86pc
Memory size: 16261 Megabytes
System Peripherals (Software Nodes):

i86pc (driver name: rootnex)
    scsi_vhci, instance #0 (driver name: scsi_vhci)
    pci, instance #0 (driver name: npe)
        pci106b,141
        display, instance #0 (driver name: vgatext)
        pci106b,141, instance #0 (driver name: audiohd)
        pci8086,7270, instance #0 (driver name: xhci)
            device, instance #2 (driver name: usb_mid)
                keyboard, instance #5 (driver name: hid)
                mouse, instance #6 (driver name: hid)
                input, instance #7 (driver name: hid)
            hub, instance #0 (driver name: hubd)
                keyboard, instance #1 (driver name: hid)
                mouse, instance #2 (driver name: hid)
                device, instance #0 (driver name: usb_mid)
            input, instance #0 (driver name: hid)
            storage, instance #0 (driver name: scsa2usb)
                disk, instance #0 (driver name: sd)
            hub, instance #1 (driver name: hubd)
                device, instance #1 (driver name: usb_mid)
                    keyboard, instance #3 (driver name: hid)
                    input, instance #4 (driver name: hid)
        pci8086,7270
        pci8086,7270, instance #1 (driver name: audiohd)
        pci8086,9c10 (driver name: pcieb)
        pci8086,9c14, instance #1 (driver name: pcieb)
            pci106b,13b
        pci8086,9c16, instance #2 (driver name: pcieb)
            pci14e4,1686, instance #0 (driver name: bge)
            pci14e4,0, instance #0 (driver name: sdhost)
                blkdev, instance #1 (driver name: blkdev)
        pci8086,9c18, instance #3 (driver name: pcieb)
            pci8086,156d, instance #5 (driver name: pcieb)
                pci8086,156d, instance #6 (driver name: pcieb)
                    pci8086,156c
                pci8086,156d, instance #7 (driver name: pcieb)
                    pci8086,1513, instance #0 (driver name: pcieb)
                        pci8086,1513, instance #11 (driver name: pcieb)
                            pci108e,7b11, instance #0 (driver name: ixgbe)
                            pci108e,7b11, instance #1 (driver name: ixgbe)
                        pci8086,1513, instance #12 (driver name: pcieb)
                        pci8086,1513, instance #13 (driver name: pcieb)
                pci8086,156d, instance #8 (driver name: pcieb)
                pci8086,156d, instance #9 (driver name: pcieb)
                pci8086,156d, instance #10 (driver name: pcieb)
        pci8086,9c1a, instance #4 (driver name: pcieb)
            pcic0a9,540a, instance #0 (driver name: nvme)
                disk, instance #0 (driver name: blkdev)
        isa, instance #0 (driver name: isa)
            motherboard
            motherboard
            pit_beep, instance #0 (driver name: pit_beep)
        pci8086,7270
    fw, instance #0 (driver name: acpinex)
        cpu, instance #0 (driver name: cpudrv)
        cpu, instance #1 (driver name: cpudrv)
        cpu, instance #2 (driver name: cpudrv)
        cpu, instance #3 (driver name: cpudrv)
        sb, instance #1 (driver name: acpinex)
    used-resources
    fcoe, instance #0 (driver name: fcoe)
    iscsi, instance #0 (driver name: iscsi)
    options, instance #0 (driver name: options)
    pseudo, instance #0 (driver name: pseudo)
    vga_arbiter, instance #0 (driver name: vga_arbiter)
    xsvc, instance #0 (driver name: xsvc)
    agpgart, instance #0 (driver name: agpgart)
    intel-iommu, instance #0 (driver name: intel_iommu)
    intel-iommu, instance #1 (driver name: intel_iommu)

Issues に独り言を追加しながら個人のメモとして使ってみる

GitHubでは Issue に限定されたアクセス権限は存在しませんが、Issue 専用のリポジトリを作成すれば、実質的にそのようなアクセス権限を設定できます。

Mobile からの参照用ツール

GitHub for mobile

https://apps.apple.com/us/app/github/id1477376905

GitHub がリリースするスマートフォンアプリ。
Issues の編集/操作も可能。
また、1.4 で Discussions をサポート。

>- Introducing Discussions, a new way to connect with your community, team, and collaborators on GitHub! Share new ideas, ask questions, and find inspiration within your repository.

CLI

GitHub CLI

https://github.com/cli/cli

image

Web browser

GitHub Writer

ckeditor/github-writer

GitHub Issues や PR, Wiki などのエディタを拡張するブラウザ拡張。

VS Code

Github Issues Notebook

#9 VS Code 上で GitHub Issues を検索する Notebook を作れる拡張機能

ZFS Storage Appliance で OCI オブジェクト・ストレージ互換機能を利用する

ZFS Storage Appliance で OCI オブジェクト・ストレージ互換機能を利用する

簡単に言うと、ZFS Storage Appliance の share (共有領域)を OCI Object Store に見立てて利用する事を目的とした機能。

ZFS Storage Appliance では、ZFS Storage Appliance Object API サービス(OCI API mode) を提供する。
この機能を有効にすることで、ZFS Storage Appliance は、OCI オブジェクト・ストレージ互換の API を提供でき、Cloud サービスとして提供される OCI オブジェクト・ストレージ機能をオンプレ上に実装することができ、OCI オブジェクト・ストレージ native API を使用するアプリケーションを変更することなく、それらを利用し、ZFS Storage Appliance にデータを格納することが可能となる。

と言うわけで、必要なものは、ZFS Storage Appliance になる。

機能詳細については、下記のマニュアルを:

利用目的としては、実際のサービスコストを消費することなく、OCI オブジェクト・ストレージ native API を用いたアプリケーションの開発(Bandwidth: read/write limits の操作も可能)、OCI オブジェクト・ストレージと連携したバックアップをオンプレミス上に取得するなどが想定される。

例えば、OCI CLI を改変することなく、oci os コマンドで基本機能の操作ができる。
サポートされる OCI Object Storage API は、下記のマニュアルを参照。Buckets と Object の操作、Multipart Upload のみをサポートしている:

OCI オブジェクト・ストレージ互換機能を利用する前に

OCI オブジェクト・ストレージ互換機能のための OCI 契約は必要ない。
が、OCI オブジェクト・ストレージ互換となるため、Oracle Cloud Infrastructure の概念や用語など、事前にいくつか理解しておく必要がある。

  • 主な概念および用語
  • Oracle Cloud Identifier (OCID)
  • テナンシの OCID とユーザーの OCID
  • OCI オブジェクト・ストレージの概要

主な概念および用語

特に、下記の項目の用語は把握しておくこと:

  • リージョンおよび可用性ドメイン
  • テナンシ
  • コンパートメント
  • キー・ペア
  • オブジェクト・ストレージ
  • バケット
  • Oracle Cloud Identifier (OCID)

Oracle Cloud Identifier (OCID) について

OCI のサービスを理解する上でリソースの識別子を覚えておくと良い。
特に、ほとんどの Oracle Cloud Infrastructure リソースに割り当てられる Oracle Cloud Identifier (OCID) というものがあるということを覚えておく必要がある:

テナンシの OCID とユーザーの OCID

OCI Object Storage を利用するためには、テナンシとユーザーに割り当てられるリソース識別子である、下記の OCID を把握しておく必要がある:

  • ユーザー OCID
  • テナンシ OCID

この 2 つは、すぐに探せるように理解しておくこと:

OCI オブジェクト・ストレージの概要

OCI オブジェクト・ストレージについては、下記のドキュメントが役立つ:

ZFS Storage Appliance の Cloud Backup 機能では、OCI Object Storage の知識が必要になるので、下記のドキュメントを参照しておく。
特に、バケットやオブジェクト・ストレージのリソースの制限なども理解しておくこと:

ルート・コンパートメント当たりのオブジェクト・ストレージ・ネームスペースの数: 1

下記の例では、arhebq9xwolu が、Tenancy に割り当てられたネームスペースになる:

Root compartment 配下に作成した bucket: satokaz-bucket の URL:

Root 配下に作成される適当な compartment 配下に作成した bucket: bucket-20201022-2319 の URL:

上記のことから、Tenancy 内に、どれだけ compartment を切って、bucket を作成しても、ネームスペース: arhebq9xwolu 配下に bucket が配置されることがわかる。

OCI オブジェクト・ストレージ互換機能の構成手順

一通り、OCI と OCI オブジェクト・ストレージの学習が済んだら、ZFS Storage Appliance 上に OCI オブジェクト・ストレージ互換機能を構成してみる。

ZFS Storage Appliance で OCI API mode を構成するための手順は、ざっと下記のような流れになる:

  1. 構成上の注意
  2. ユーザーを作成する
  3. Object を配置する share を決める
  4. ZFS Storage Appliance Object API サービス を有効にする
  5. ユーザーごとの認証用公開キーを作成し ZFS Storage Appliance に登録
  6. OCI CLI を利用してオブジェクト・ストレージを操作する

構成上の注意

時刻同期は確実に

この手の仕組みは、時刻が重要になる。
必ず、ZFS Storage Appliance 側、クライアント側共に NTP サービスを利用するように構成し、時刻の差異による問題から開放されるようにしておくこと。
手動で同期しても、徐々にズレて行くので軽視してはいけない。
大事なことなので何度でも。NTP でしっかり時刻同期がされていることを確認すること。じゃないと、下記のようなエラーが出る。
これが、時刻のズレが原因と推測するのは初見では、ほぼ不可能...

ServiceError:

{
    "code": "NotAuthenticated",
    "message": "The required information to complete authentication was not provided",
    "opc-request-id": "txa26c079985f54f68b5748-005ff95e2e",
    "status": 401
}

image

ブラウザのロケールを簡単に切り替え可能にしておく (tips)

Chrome 限定の話になってしまうが、ZFS Storage Appliance の BUI は、日本語対応のため項目が日本語表示される。
しかしながら、マニュアルなどは英語のものが多く、そのため、すぐにブラウザの表示言語を変更できるようにしておくと、色々と捗る気がする。
Chrom であれば、下記の拡張機能をインストールしておくことで簡単に実現することができる:

ユーザーを作成する

まずは、ZFS Storage Appliance 上にユーザーを作成する。share とその上に作成される bucket を読み書きするユーザーとなる。

  • Configuration > Users

image

Type: Local を指定し、ZFS Storage Appliance 上に作成してみる。
作成したユーザー名は、OCI CLI 利用時の ユーザー OCID としても利用する。(やっと、OCID が出てきた)

image

ちなみに、初めから用意されている root ユーザーは、利用できない。
下記のように NotAuthenticated になるので、必ず専用のユーザーを作成しておくこと:

% oci os bucket create --endpoint http://192.168.100.166/oci -ns export/oci-project/oci-object-1 --compartment-id export/oci-project/oci-object-1 --name testbucket0
ServiceError:
{
    "code": "NotAuthenticated",
    "message": "The required information to complete authentication was not provided",
    "opc-request-id": "txb7a4c32a5ae5452daa32a-0060176fc9",
    "status": 401
}

Object を配置する share を作成する

ZFS Storge Appliance において、OCI オブジェクト・ストレージの器となる、bucket そのものの配置先は、share となる。
これが、オブジェクトを格納するためのエンドポイントとなる。
既存の Project 配下に作成しても良いし、オブジェクト・ストレージ互換機能専用の Project を作成し、その配下に share を作成しても良い。

image

Project そのものを書き込み先として指定することはできない。Project 配下に必ず share を作成し設定を行うこと。
そして、その share では必ず、share -> protocol -> HTTP の OCI API mode を指定しておく必要がある。

  1. Shares > Filesystems で適当な share を作成。この時、User に先ほど作成したユーザー名をセット
  2. 作成した share をダブルクリック > Protocols > HTTP の OCI API mode を Read/write にセット > APPLY

例として、IP address: 192.168.100.166 がアサインされる、ZFS Storage Appliance 上に Project: oci-project を作成、その配下に、share: oci-object-1 を作成してみる

Project: oci-project

  1. Project そのものに、OCI API mode を設定しなくても良い。設定を継承させたい場合は、セットする。

image

share: oci-object-1
2. 作成した share の Protocols で、HTTP の OCI API mode を設定すること

エンドポイントは、http://192.168.100.166/oci/n/export/oci-project/oci-object-1/ となる。

image

image

また、share は、OCI CLI の下記オプションに渡す値になる:

--namespace-name, --namespace, -ns [text]

  • Project: oci-project の mount point は /export/oci-project に指定されている
  • その配下に作成した share: oci-object-1 の mount point は、/export/oci-project/oci-object-1 に指定されている

このような条件である場合、-ns へ渡される値は、export/oci-project/oci-object-1 となる

ZFS Storage Appliance Object API サービス を有効にする

ZFS Storage Appliance の BUI にアクセスし、OCI オブジェクト・ストレージ互換機能を有効にする。

  • Services -> HTTP -> OCI で、Enable OCI にチェックを入れ、Default path を指定する
    image

Default path は、オブジェクトを格納するデフォルトの場所となり、OCI API mode が有効になっている share のマウントポイント (/export/oci_satokaz みたいな感じ) を指定する。
クライアントでオブジェクトの場所を指定しない場合は、このパスが使用される。
Default Path にセットされた share のマウントポイントは、オブジェクトストレージサービスにアクセスするクライアントが使用するデフォルトのネームスペース (OCI で言うところの「ルート・コンパートメント当たりのオブジェクト・ストレージ・ネームスペース」)として使用される。

Default Path を設定しなくても、サービスは有効化できる。

Project を、Default path に設定する事もできるが、そのパス直下に bucket を作成することはできないみたいなので、必ず、Project 配下に share を作成し、その share を指定すること。

share が存在しない Project を Default Path に指定すると、下記のエラーが出力される:

Default path: Path does not exist: Check that there is a valid share configured for OCI

少し先の項目になってしまうが、OCI CLI からネームスペースを取得してみる。

OCI CLI の oci os ns get コマンドの用途は、ネームスペースを取得するコマンドになる。
OCI オブジェクト・ストレージでは、ルート・コンパートメントに一意のネームスペースが割り当てられているため、必ず値が返ってくる。
ZFS Storage Appliance では、ネームスペースの替わりに、Default path でなんとかしてるっぽい。

Default path に Project:/export/oci-project/oci-object-1を指定して実行して見た結果:

% oci os ns get --endpoint http://192.168.100.166/oci                        
{
  "data": "export/oci-project/oci-object-1"
}

Default path に何も設定しない場合、OCI CLI の oci os ns get コマンドは、何も返さない。これは、何も設定されていないので、返すべき値がないから。
OCI CLI で --compartment-id, -c [text]--namespace-name, --namespace, -ns [text] に必ず値をセットして利用するのであれば、Default path 設定は空でも構わない。

ユーザーの認証用鍵を作成し公開鍵を ZFS Storage Appliance に登録

認証は、PEM フォーマットの RSA キー・ペアを作成し、公開鍵を ZFS Storage Appliance に登録することで行う。
PEM フォーマット以外は、Key: Invalid RSA public key (not in PEM format) と怒られるので使えない事に注意。
また、ssh-keygen だと、-m PEM を指定し PEM フォーマットで出力できる事になっているが、この方法で作成した鍵は PEM format として認めてくれないのでダメ。

openssl コマンドを利用して、キー・ペアを作成する。
詳細については、下記のドキュメントを参照:

% mkdir ~/.oci
% openssl genrsa -out ~/.oci/oci_api_key.pem 2048
% chmod go-rwx ~/.oci/oci_api_key.pem               
% openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem
writing RSA key
% ls ~/.oci
./                      ../                     oci_api_key.pem         oci_api_key_public.pem

作成した公開鍵を ZFS Storage Appliance へ登録する。

  • Services > HTTP > OCI の Keys に、作成したユーザー名と公開鍵を登録する

image

ここまでの状態

ここまで設定できれば、ZFS Storage Appliance は、OCI オブジェクト・ストレージとして振る舞える状態になっている。
あとは、クライアントから叩くだけ。
ちなみに、本物 OCI オブジェクト・ストレージのように、S3 互換のプロトコルを利用して、オブジェクトを操作することはできない。
ZFS Storage Appliance は、 S3 互換オブジェクトストレージの機能も提供しているが、この機能経由で、OCI オブジェクト・ストレージ互換機能で読み書きされたオブジェクトを扱うことはできない。
同じ、Share を利用することは可能だが、xattr か何かを使ってうまく干渉しないようにしている。

Oracle Cloud Infrastructure CLIのメモ。主に Solaris 11.4

16:18:00-kazus@solaris~$ oci -v
2.20.1

手元の環境で、OCI CLI を動かすためのメモ。主に Solaris 11.4

  • https://github.com/oracle/oci-cli
  • curl でインストールした場合のアップデートは、インストールと同様の curl コマンドを再度実行すれば良い
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"

macOS

command line developer tools が必要になるので、必ずインストールしておく:

% sudo xcode-select --install

Apple M1 機 では、arm64 build できないので、arch -arch x86_64 /bin/zsh -l とかして、x86_64 でインストールを実行すること。

homebrew でも、インストール可能。x86_64 でも arm64 でもインストールできる。

Solaris 11.4 SRU 28

動かせた。

pkg set-mediator で、利用する OpenSSL を 1.1.1d に切り替えてあげれば、1.0.2 利用時の Warning とは付き合う必要がないことがわかった。

mediator を openssl 1.1.1 を利用する [email protected] に切り替え、PKG_CONFIG_PATH 環境変数をセットしてインストールを実行:

$ sudo pkg set-mediator --no-backup-be -I [email protected] openssl
$ export PKG_CONFIG_PATH=/usr/lib/64/pkgconfig 
$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"

Solaris 11.4 の OpenSSL については、下記の記事を参照。Solaris 11.4 SRU 21 から、OpenSSL 1.1.1 が提供されるようになっていた。

Solaris 11 の IPS には、あるアプリケーションの異なる実装へのリンクのセットを提供する mediation と言う考え方を提供する。
OpenSSL は、この medation がセットされており、1.0.2/1.1.1d/fips-140 対応と 3 つの mediator を持っている。
と言うわけで、openssl の mediator を OpenSSL 1.1.1 に切り替えて build してしまえば良い。と言うのを知った。
勉強になりました。

その後、下記の環境変数をセットして oci コマンドを実行:
$ export CRYPTOGRAPHY_ALLOW_OPENSSL_102=1
$ oci -v
/export/home/kazus/lib/oracle-cli/lib/python3.7/site-packages/cryptography/hazmat/bindings/openssl/binding.py:179: CryptographyDeprecationWarning: OpenSSL version 1.0.2 is no longer supported by the OpenSSL project, please upgrade. The next version of cryptography will completely remove support for it.
  utils.CryptographyDeprecationWarning,
2.20.0

下記の CryptographyDeprecationWarning は、Solaris 11.4 で提供される OpenSSL がアップデートされるまでは消えない:

/export/home/kazus/lib/oracle-cli/lib/python3.7/site-packages/cryptography/hazmat/bindings/openssl/binding.py:179: CryptographyDeprecationWarning: OpenSSL version 1.0.2 is no longer supported by the OpenSSL project, please upgrade. The next version of cryptography will completely remove support for it.
utils.CryptographyDeprecationWarning,

https://github.com/oracle/solaris-userland/tree/master/components/openssl/openssl-1.1 を見ると、SRU29 SRU 30 あたりで 1.1.1i に update されるかな?

なんか、デバイスいろいろと (temp

Cable Matters USB-C to 2.5 Gigabit Ethernet Adapter

driver: Realtek USB FE / GBE / 2.5G / Gaming Ethernet Family Controller Software

2.5GbE と Jumbo frame を利用するために、driver が必要。
driver なしだと、1GbE (MTU1 500 まで) のアダプタとして Intel でも M1 でも利用可能。
USB には期待しない方が良い

そして、この driver は Big Sur では効かないような気が・・・

macOS の画面共有.app (Screen Sharing.app) を利用した VNC 接続

macOS も標準機能として VNC Client を持っているので、使えるものは使ってしまいましょう。というお話。

Finder で ⌘+K するか、画面共有.app (Screen Sharing.app) を実行

/System/Library/CoreServices/Applications/Screen Sharing.app

mDNS でネットワーク上にサービスがアドバタイズされていれば、Finder の ネットワーク から、ホストが提供する 画面の共有... でも可能。

Solaris で動作している VNC サービスをアドバタイズしてみる

すでに、VNC server が利用できるよう Solaris 上に構成されていることが前提。
また、画面共有.app (Screen Sharing.app) から接続するには、VNC への接続認証にパスワードが利用されるよう設定されている必要がある。

avahi を利用してサービスを登録し、Finder に Solaris マシンを表示させ、画面の共有... ボタンで VNC に接続できるようにする。

Solaris 11.4 の avahi-daemon について

LSARC/2007/464/ で avahi-daemonavahi-daemon-bridge-dsd という名前に変えてやがった

# LSARC/2007/464/ -> rename avahi-daemon to avahi-daemon-bridge-dsd

https://github.com/oracle/solaris-userland/blob/master/components/avahi/generate/avahi.static#L32-L33

/etc/avahi/services ディレクトリはは存在していないが、手動で作成し、この配下にサービスが記載されたファイルを配置すれば daemon 起動時に読み取ってくれるので、avahi-daemon としての動きは問題ない感じ。

というわけで、Solaris でも Avahi は利用可能。

Avahi を使ってサービスをアドバタイズする

  • _rfb._tcpport 5900 で動作している事をアドバタイズするために Avahi サービスを作成
# mkdir -p /etc/avahi/services
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_rfb._tcp</type>
    <port>5900</port>
  </service>
</service-group>
  • 作成したサービスを mDNS を使ってアドバタイズできるように mDNS サービスを有効化
# svcadm enable dns/multicast 
# svcadm restart avahi-bridge-dsd
  • Solaris マシンでサービスのアドバタイズを確認

こんな感じで、出てくれば良い

$ avahi-browse -a 
+   net0  n/a solaris                                       _rfb._tcp.           local.

macOS の Finder には、このように表示される

image

macOS で iSCSI initiator

DAEMON Tools

Big Sur をサポート。
userland での実装なのだろうか? Apple M1 MacBook Air でもうごいた。
手軽に iSCSI Initiator を用意できるが、遅い...

iSCSI Initiator 機能は、US $8.00

https://mac.daemon-help.com/images/iscsi/

globalSAN iSCSI Initiator

有償で $89。14 日間の trial あり。
Kernel Extension として実装しているので、DAEMON Tools よりは速い。

MC/S はサポートしているが、MS/T はサポートしていない。
globalSAN iSCSI Initiator の MC/S 実装は、target と initiator 側に 2 つの NIC を用意して、それぞれ別のネットワークアドレスをアサインする方式。

trial を解除すれば、Persistent 機能が利用できるので、再起動しても自動で target に接続してくれる。

https://www.studionetworksolutions.com/globalsan-iscsi-initiator/

Catalina は大丈夫。

Big Sur では注意が必要。
また、Apple Silicon 対応ではないので注意。

Xtend SAN iSCSI Initiator Version 5.51

US $195.
Big Sur は対応待ちっぽい。
ちょっとお高いので手が出せない。

https://www.atto.com/products/software/NONE/software/INIT-MAC0-001

iSCSI Initiator X

ちょっと、ダメそうな気がする。。。

https://www.kernsafe.com/product/macos-iscsi-initiator.aspx

iscsi-osx/iSCSIInitiator

2017 年リリースの 1.0.0-beta6 が最終かな? 時が止まっている感じ。
Catalina まではいけるのかな?

iSCSI Initiator for macOS を使って Mac を iSCSI に対応させる方法

macOS Server の performance mode は、macOS Server じゃなくても有効になるか?

こんなのあったのか・・・
Catalina でも、Big Sur でも performance mode のオプションは効くね。

Turn on performance mode for macOS Server
https://support.apple.com/en-us/HT202528

davidalger/Enable-macOS-Server-Performance-Mode.md
https://gist.github.com/davidalger/a3afa2410a40ce6ae59d4e6a3b18e5c7

確認方法は、kern.maxvnodes が 300000 になっていれば良いっぽい:
https://apple.stackexchange.com/questions/323525/is-server-performance-mode-enabled-or-not

Catalina on Mac Mini Server Late 2011 で試してみたところ、確かにパラメータが変更された。

スペルチェックに macOS 搭載の辞書を利用する vscode の Spell Right 拡張機能

3.0.72 released on 13th July 2022 で、これらの問題が解決しています。以降は読み物として取り扱いください

VS Code のエディタ上で macOS 内蔵の 辞書.app (辞書ユーザガイド)の仕組みを使ってスペルチェックを提供する Spell Right 拡張機能があったのでメモ。

Spell Right 拡張機能は、辞書との連携を SpellChecker Node Module で実現しているが、これは、AppKit が提供する NSSpellChecker を呼び出している。

良さげだねと思ったが、

insiders build では利用できない

insiders build では、extension host process を再利用するための仕様変更が行われ、
Disable Library Validation Entitlement が追加され、署名されていないバイナリの呼び出しを拒否する設定が入り Spell Right 拡張機能は、これに引っかかってしまっていた。

最新の insiders build では、修正されたので大丈夫。

Apple Silicon では利用できない

SpellChecker Node Module の Apple Silicon バイナリが、含まれていない。
拡張機能は、process.arch で返ってきた文字と一致する SpellChecker を起動する仕組みだが、Apple Silicon では、arm64 を返すので、そもそもバイナリが含まれていないため利用できないとなる。

https://github.com/bartosz-antosik/vscode-spellright/blob/dc9d7f6c24c1070606af0aabc3aa6cd4731c735f/lib/bindings.js#L18-L33

/lib/bindings.js

  const nodeFiles = glob(path.join(__dirname, `bin/${baseName}*${process.arch}*.node`), { sync: true });

そして、Apple Silicon 用の SpellChecker Node Module を build する修正とバイナリが PR され merge された。

動かしてみる

というわけで、Apple Silicon な環境で、Spell Right 拡張機能を利用する方法となる。
Intel な環境では大丈夫な感じ。

source code としては、準備は整っているが、修正を反映したパッケージが作成されない...ので、手順を作成してくれた良い人現る。

ただ、最新の vsce は、node.js 14.x が必要だったり、npm v7 が必要だったり、環境が整っていないと build できないので、どうしたものかなぁと調べていたら、下記の方法で build することなく利用できるようになった。

  1. GitHub の Spell Right リポジトリから、arm64 のバイナリをダウンロード
  2. VS Code に Spell Right 拡張機能をインストール
  3. 1 でダウンロードしたファイルをコピー
  • Stable: $HOME/.vscode/extensions/ban.spellright-3.0.60/lib/bin
  • Insiders: $HOME/.vscode-insiders/extensions/ban.spellright-3.0.60/lib/bin
  1. でもって、VS Code を再起動する。
  2. 拡張機能がロードされたタイミングで、コピーしたバイナリは署名されていないということで block されるため、セキュリティとプライバシーで許可を与え、これを手動で解除:

スクリーンショット 2021-11-24 5 18 12

スクリーンショット 2021-11-24 5 18 32

  1. もう一度、VS Code を再起動すると拡張機能がロードされたタイミングで、下記のような表示が出てくるので「開く」を実行

スクリーンショット 2021-11-24 5 18 55

  1. コマンドパレットから SpellRight: Select Dictionary (Language) を実行し、English を選択すれば、英語のスペルチェックが有効になる

Insiders では・・・

extension host process 再利用の仕様変更によるものなのか、VS Code のインスタンス数分?のアイコンが生成され、ちょっとバウンドした後に居座るようになる。ので、気にしない・・・:

2021-11-22.19.12.16.mov

Total War: WARHAMMER の日本語化 (macOS 版)

macOS 版 Total War: WARHAMMERの日本語化。Total War: WARHAMMER II の日本語化は、このような手順は必要ない。
MacBook Air (M1, 2020), macOS Monterey 12.5.1, Steam 版で動作を確認

  1. Total War: WARHAMMER を購入してインストールする

  2. Total War: WARHAMMER の Workshop にて、JAPANESE Language MOD に subscribe する

    Total War: WARHAMMER
    JAPANESE Language MOD
    https://steamcommunity.com/sharedfiles/filedetails/?id=1225787764

  3. subscribe すると、mod file が下記のディレクトリ配下に download される。
    このディレクトリのどこかに、mod_wh_lan_jp.pack ファイルがあるので探す。
    この mod の Steam における管理 ID は、1225787764 となるので、その下にあるはず。

    $HOME/Library/Application Support/Steam/steamapps/workshop/
    
  4. mod_wh_lan_jp.pack ファイルを $HOME/Library/Application Support/Feral Interactive/Total War Warhammer/VFS/Local/mods ディレクトリにコピーする

  5. $HOME/Library/Application Support/Feral Interactive/Total War Warhammer/VFS/User/AppData/Roaming/The Creative Assembly/Warhammer/scripts に、user.script.txtファイルを作成し、下記を 1 行追加しておく。

    mod mod_wh_lan_jp.pack
    

    ※同一ディレクトリにある、preferences.script.txt は、write_preferences_at_exit true; が有効になっているため、ゲームを終了する度に書き換えられてしまう。これを write_preferences_at_exit false; にして、書き換えが発生しないようにさせ、起動時に mod を読み込ませる技を説明しているところもあるが、user.script.txt を利用すれば回避できる

  6. Total War: WARHAMMER を起動する。Launcher の MOD Manager では、mod_wh_lan_jp が off になっているように見えるが、それとは関係なく有効になってゲームを始めることができる

image

デイジーチェーンが可能な Thunderbolt 3 dock

基本的には高い。日本だと 3万円前後。
ホスト接続用の TB3 ポートのほか、もう 1 ポートを持っている製品。
たくさんあるが低価格なやつを。
これらに共通して言えることだが、とにかく電源アダプタがでかい。でかすぎる。

これを Mac Mini 2012 で利用している。やりすぎると、新しい Mac mini か中古の Mac mini を買った方が良いことになるので注意。人は絶えず、何かと闘っている。

目的は、dock が欲しいのではなく、Thunderboolt のディジーチェーンをしたいとなる。
Upstream port を Apple TB3 to TB2 アダプタで TB2 に変換し、TB2 しか持たないマシンに TB3 デバイスを接続したいだけだが、TB3 デバイスの中には、上位の TB3 ポートから給電を必要とするバスパワー駆動製品があり、単に TB2 に変換しただけでは電力供給がないので動作しないことを回避したいのが狙い:

  • Thunderbolt 3 dock は、別途、ホストへの電力供給のために外部電源を持っている
  • Apple Thunderbolt 3(USB-C)- Thunderbolt 2アダプタ を dock のホスト接続側に接続すれば、Thunderbolt 2 ホストに接続可能 (要 Thunderbolt 2 ケーブル)
  • あとは、dock に Thunerbolt 3 機器を接続すれば良いだけ
  • TB2 で link up するため、dock 及びそれに接続された TB3 デバイスは、リンク速度が 20Gbps になる
  • また、本体の USB ポートより、dock 搭載の UBS ポートを利用した方がパフォーマンスが良かったり安定したりする場合がある
  • TB3 dock に加えて、アダプタとケーブルが必要になるため +1万くらい必要。なので、なるべく安い dock を探している
  • とはいえ、サポートされていない場合がほとんどなので自己責任で

Apple Thunderbolt 3 (USB-C) - Thunderbolt 2 アダプタについて

このアダプタは Thunderbolt では受電しないため、外付けの Thunderbolt ディスプレイや、Thunderbolt での給電に対応したその他のデバイスにつないで Mac を充電することはできません。

1 ポート持っている製品

Thunderdock SP/Thunderdock SP IV - Thunderbolt™ 3 4K Display Docking Station

ちょっと仕様が古いから安いのかな?
WAVLINK ものだけど、このモデルは DisplayLink はサポートされないので注意。
Cuctus Ridge (2012) ものだった。

Amazon なんだが、多分、これが最安なんじゃないだろうか (2021/1 現在 ¥15,768):

Highpoint RocketStor 6661A Thunderbolt 3 to PCIe 3.0 X16 Expansion Chassis

dock ではないが、デイジーチェーン用の Thunderbolt 3 ポートを 1 つ持っている PCI-E エンクロージャでも良い。
この類も、日本では高価になってしまうので、Amazon.com あたりから購入するのも良いかもしれないが、送料などが追加されると、あまり効果的ではないかもしれないので注意:

3 ポート持っている製品

この領域に入ってくると、Thunderbolt 4 製品になってくる。
Thunderbolt 4 製品は、別途、driver が必要になるので、これらは、Big Sur でなければ利用できない。Catalina では本当に動かない。TB2 の多くは、Catalina 止まりだと思うので注意が必要。

OWC THUNDERBOLT DOCK

US $249

OWC THUNDERBOLT HUB

US $149

AppleScript で Sidecar の接続/接続解除をトグルする

SIdecar の接続と解除をトグルする Apple Script (日本語ロケール用)

下記、英語環境用の workflow を参考に

tell application "System Preferences"
	activate
	set the current pane to pane id "com.apple.preference.sidecar"
	get the name of every anchor of pane id "com.apple.preference.sidecar"
	delay 1
	tell application "System Events"
		set target_button to a reference to (first button whose name is "接続解除") of (window "Sidecar" of application process "システム環境設定")
		if target_button exists then
			click target_button
		else
			click menu button "デバイスを選択" of window "Sidecar" of application process "システム環境設定"
			count menu items of menu of menu button "デバイスを選択" of window "Sidecar" of application process "システム環境設定"
			select item 1 of menu button "デバイスを選択" of window "Sidecar" of application process "システム環境設定"
			key code 125
			key code 76
		end if
	end tell
	quit
end tell

macOS の backup software (除く Timemachine)

Acronis True Image 2021 for Mac が 1ヶ月の trial 可能(ディスククローニングができない)なので試してみているが、良い感じかもしれない:

The best backup software for Mac 2020

  • Subscription model
  • NAS にも取得可能
  • 直結で取得したものを NAS 経由で共有してもふるバックアップとして認識してくれて、差分取得可能

https://www.acronis.com/ja-jp/support/documentation/ATIMAC2021/index.html#41398.html

バックアップ ファイルの形式
Acronis True Image 2021 では、ローカルストレージまたはネットワークストレージに Mac をバックアップすると、バックアップデータが独自の .tib 形式または .tibx 形式に圧縮されて保存されます。.tib または .tibx ファイルのバックアップのデータは、Acronis True Image 2021 を使用した場合にのみ復元できます。

Acronis Cloud に Mac をバックアップする場合、Acronis True Image 2021 はデータを「現状のまま」保存します。インターネットに接続された任意の Mac コンピュータで、製品またはAcronis Cloud Web アプリケーションを使用してデータをリカバリできます。

地味に Parallels Desktop サポートが入っている
https://www.acronis.com/ja-jp/support/documentation/ATIMAC2021/index.html#38619.html

サポートドキュメント:
https://www.acronis.com/ja-jp/support/trueimage/2021mac/

Broadcom BCM57762/BCM57766 をサポートした Solaris bge driver

Mac mini Late 2012 以降搭載される Broadcom BCM57766 を Solaris で利用できないかのメモ:

  • Broadcom BCM57766

    • Mac mini Late 2012 onboard Ethernet
    • Mac mini Late 2014 onboard Ethernet
    • Mac mini Late 2018 onboard Ethernet
  • Broadcom BCM57762

    • Apple Thunderbolt Gigabit Ethernet

onnv b147

2013 年頃に、onnv b147 に含まれる bge source を Solaris 11.1 で動くように修正して使っていた。
記念に github にあげておく:

出来上がった binary は Solaris 11.4 でも動いている。

Broadcom NetXtreme 1Gb Driver For Solaris

BCM57762/BCM57766 サポートはないが、これをベースに Solaris 11.4 でも bge を単体 build できそう。
onnv b147 ベースではなく、こちらに切り替えたい。

NOTE: This driver is for OS versions that are no longer supported by Broadcom

illumos-gate

NetBSD における BCM57766 と BCM5762 の実装

いろいろ

Oracle® Solaris 11.3 デバイスドライバの記述

  • ネットワークデバイスのドライバ
  • GLDv3 ネットワークデバイスドライバフレームワーク
  • ドライバのコンパイルとリンク
    • studio 12.4 以降、最適化が優先され指定しなくても SSE を使ってしまう kernel module ができてしまうので、必ず-xregs=no%float を指定する
    • 注意 - Oracle Solaris Studio コンパイラを使用して、32 ビットまたは 64 ビットの x86 アーキテクチャー向けにコンパイルする場合は、コンパイルしても MMX 命令または SSE 命令が生成されないことを確認する必要があります。x86 カーネルでは MMX 命令および SSE 命令はサポートされません。MMX 命令または SSE 命令を使用するとカーネルパニックが発生するため、使用しないようにしてください。

macOS で Visual Studio Code を使うためのアレコレ (2021/01/01) 更新

Qiita の記事を macOS で Visual Studio Code を使うためのアレコレ (2021/01/01) を更新。

https://qiita.com/satokaz/items/6a6a0d9b6489ec2d1803

Apple M1 搭載の MacBook Air を手に入れたのと、Big Sur への移行を開始したので、その変のお話を追加。

※ Comment に記事のソース貼っとくといいね!とか思ってやってしまったが、GitHub Issues の link が含まれていると、その issue に自動的に link が作成されてしまうの後から気がついてしまった・・・
ひとまず、Issue を削除すればリンクは消えるっぽいので、それで対処(Comment だけ削除しても消えない)

OWC Thunderbolt Hub

2021-01-04 OWC_Thunderbolt_Hub

Catalina では動作しないので注意。
Big Sur であれば問題く。

https://eshop.macsales.com/shop/owc-thunderbolt-hub

https://owcdigital.jp/WP/thunderbolt-hub/

良いレビュー:
OWC Thunderbolt Hub with M1 MacBook Pro: First Impressions

https://twitter.com/satokaz/status/1345301567075876865?s=21

Thunderbolt 2 搭載機で使えるか?

サポートされる構成ではないことに注意

MacBook Pro Late 2013 を Big Sur にしたので試してみた。
必要なものは、下記のアダプタとケーブルのみ:

アダプタが双方向対応なのがポイント。他社のアダプタもいくつかあるが、双方向に対応していないものが多いので、純正買っておくのが一番です。

接続は、簡単で Thunderbolt Hub のアップストリームポートに Apple TB3 to TB2 アダプタの TB3 を差し込み、あとは、TB2 ケーブルで本体と接続するだけ:

twitter_Eq5KcvoUUAA3bZl

というわけで、アダプタとケーブルのコストが上乗せされるけど、Thunderbolt 2 搭載機でも利用できました。

ただし、これを接続した状態だと起動時や再起動時、りんごマークが表示されるか手前でダンマリとなってしまうので、OS が起動したら手動でケーブルを差し込む作業が必要だった。

MacBook Pro 13/15 共に、2015 年モデルまでは Thunderbolt 2 搭載なので、どうしてもという場合は利用価値はあるかもしれない。

とりあえず、動作確認したもの。

twitter_Eq5MVYTVkAMqkdg

TB3 を 2 つ持っている RocketStore 6661A に OWC Thunderbolt HUB を接続し、もう一つの口に Apple TB3 to TB2 アダプタを介して MBP15 に接続してみたところ:

twitter_Eqt4pLWVEAIq9B5

MacBook Pro Late 2013 との間は TB2 なので 20Gbps になってしまうが、OWC Thunderbolt Hub とそれに接続した Anker Elite 13-in-1 とそれに接続される USB デバイスや USB HDD を認識して利用できてる

twitter_faa72672223a3cdac8cf2bf54cf9f7f3

Apple Silicon MacBook Air で遊んでみたもの

基本、あちち。ファンレスな MacBook Air では、センサーが 90度とか報告してる。

Final Fantasy XIV (スクエニ配布の Mac 用クライアント):
スクリーンショット 2021-01-01 3 15 48

以下は、Parallels 16 TP 上の Windows 10 on ARM Build 21277。

Dragon Age: Origins (GOG):
スクリーンショット 2021-01-02 11 42 06

天穂のサクナヒメ (Steam):
スクリーンショット 2021-01-02 11 46 13

Last Remnant (Steam):
スクリーンショット 2021-01-02 11 48 49

Mac mini Late 2012 に Thunderbolt 3 dock と 10GbE アダプタを増設してみる

こんなことするくらいなら、Mac mini 2018 の中古を買った方が良い。Mac mini 2018 の中古を買った方が良い。大事なことなので何度でも

2021 年だけど、Mac min Late 2012 がそれなりに使えてしまうので、もう少しだけ延命させてみる。
(意訳: 買い替えたいが、Mac mini 2018 が思ったほど値段が下がらず、なんか悔しいので)

Thunderboltポート(最大10 Gbps)x 1

Mac mini (Late 2012) - 技術仕様
https://support.apple.com/kb/SP659?locale=ja_JP&viewlocale=ja_JP

ヤベェ、さっきまで、Mac mini Late 2012 は Thunderbolt 2 だと思ってた。

#20Thunderdock SP/Thunderdock SP IV - Thunderbolt™ 3 4K Display Docking Station を利用して 10GbE アダプタを接続しているの図:

image

Thunderbolt 3 to 10 Gigabit Ethernet RJ45 LAN Adapter

iMac や Mac mini 2018/2020 の 10GbE オプションで搭載されるものと同じ Aquantia AQC107-B0 搭載。

Apple TB3 to TB2 アダプタを利用して TB2 マシンに接続しても、この接続方式では電源の供給がデバイスへできないため利用できない。どうしても利用したい場合は、PD 対応の TB3 Dock などを間に挟む事で Dock のアップストリーム側を TB2 変換してもいける。
そして、クソ熱い!

Mac mini Late 2012 + Thunderdock SP + Thunderbolt 3 to 10 Gigabit Ethernet RJ45 LAN Adapter と X1109A-Z の iperf3 は、7.0Gbps 程度なので、こんなものかという感じなのかな。
MBP16 にした場合は、9.8Gbps 出てるので、単に HW か Thunderbolt の帯域がボトルネックなのかなと:

TCP

kazus@Mac-mini-Late-2012 ~ % iperf3 -c 192.168.222.9 -T `hostname` -V 
Mac-mini-Late-2012.local:  iperf 3.9
Mac-mini-Late-2012.local:  Mac-mini-Late-2012.local:  Darwin Mac-mini-Late-2012.local 19.6.0 Darwin Kernel Version 19.6.0: Tue Nov 10 00:10:30 PST 2020; root:xnu-6153.141.10~1/RELEASE_X86_64 x86_64
Control connection MSS 8948
Mac-mini-Late-2012.local:  Time: Fri, 15 Jan 2021 14:21:41 UTC
Mac-mini-Late-2012.local:  Connecting to host 192.168.222.9, port 5201
Mac-mini-Late-2012.local:        Cookie: p5gq4l6pbhc4ifgwmi4vlwrne4zgepwyzsay
Mac-mini-Late-2012.local:        TCP MSS: 8948 (default)
Mac-mini-Late-2012.local:  [  5] local 192.168.222.185 port 50485 connected to 192.168.222.9 port 5201
Mac-mini-Late-2012.local:  Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test, tos 0
Mac-mini-Late-2012.local:  [ ID] Interval           Transfer     Bitrate
Mac-mini-Late-2012.local:  [  5]   0.00-1.00   sec   836 MBytes  7.01 Gbits/sec                  
Mac-mini-Late-2012.local:  [  5]   1.00-2.00   sec   838 MBytes  7.03 Gbits/sec                  
Mac-mini-Late-2012.local:  [  5]   2.00-3.00   sec   831 MBytes  6.97 Gbits/sec                  
Mac-mini-Late-2012.local:  [  5]   3.00-4.00   sec   828 MBytes  6.95 Gbits/sec                  
Mac-mini-Late-2012.local:  [  5]   4.00-5.00   sec   840 MBytes  7.05 Gbits/sec                  
Mac-mini-Late-2012.local:  [  5]   5.00-6.00   sec   836 MBytes  7.02 Gbits/sec                  
Mac-mini-Late-2012.local:  [  5]   6.00-7.00   sec   830 MBytes  6.96 Gbits/sec                  
Mac-mini-Late-2012.local:  [  5]   7.00-8.00   sec   830 MBytes  6.96 Gbits/sec                  
Mac-mini-Late-2012.local:  [  5]   8.00-9.00   sec   832 MBytes  6.98 Gbits/sec                  
Mac-mini-Late-2012.local:  [  5]   9.00-10.00  sec   831 MBytes  6.97 Gbits/sec                  
Mac-mini-Late-2012.local:  - - - - - - - - - - - - - - - - - - - - - - - - -
Mac-mini-Late-2012.local:  Test Complete. Summary Results:
Mac-mini-Late-2012.local:  [ ID] Interval           Transfer     Bitrate
Mac-mini-Late-2012.local:  [  5]   0.00-10.00  sec  8.14 GBytes  6.99 Gbits/sec                  sender
Mac-mini-Late-2012.local:  [  5]   0.00-10.00  sec  8.14 GBytes  6.99 Gbits/sec                  receiver
Mac-mini-Late-2012.local:  CPU Utilization: local/sender 29.5% (5.9%u/23.6%s), remote/receiver 0.9% (0.2%u/0.7%s)
Mac-mini-Late-2012.local:  rcv_tcp_congestion newreno
Mac-mini-Late-2012.local:  
Mac-mini-Late-2012.local:  iperf Done.

UDP:

kazus@Mac-mini-Late-2012 ~ % iperf3 -c 192.168.222.9 -T `hostname` -V -u 
Mac-mini-Late-2012.local:  iperf 3.9
Mac-mini-Late-2012.local:  Mac-mini-Late-2012.local:  Darwin Mac-mini-Late-2012.local 19.6.0 Darwin Kernel Version 19.6.0: Tue Nov 10 00:10:30 PST 2020; root:xnu-6153.141.10~1/RELEASE_X86_64 x86_64
Control connection MSS 8948
Setting UDP block size to 8948
Mac-mini-Late-2012.local:  Time: Fri, 15 Jan 2021 14:22:05 UTC
Mac-mini-Late-2012.local:  Connecting to host 192.168.222.9, port 5201
Mac-mini-Late-2012.local:        Cookie: nttehdycecp753waeet2e6pyzvwkez2niqg5
Mac-mini-Late-2012.local:        Target Bitrate: 1048576
Mac-mini-Late-2012.local:  [  5] local 192.168.222.185 port 52006 connected to 192.168.222.9 port 5201
Mac-mini-Late-2012.local:  Starting Test: protocol: UDP, 1 streams, 8948 byte blocks, omitting 0 seconds, 10 second test, tos 0
Mac-mini-Late-2012.local:  [ ID] Interval           Transfer     Bitrate         Total Datagrams
Mac-mini-Late-2012.local:  [  5]   0.00-1.00   sec   131 KBytes  1.07 Mbits/sec  15  
Mac-mini-Late-2012.local:  [  5]   1.00-2.00   sec   131 KBytes  1.07 Mbits/sec  15  
Mac-mini-Late-2012.local:  [  5]   2.00-3.00   sec   122 KBytes  1.00 Mbits/sec  14  
Mac-mini-Late-2012.local:  [  5]   3.00-4.00   sec   131 KBytes  1.07 Mbits/sec  15  
Mac-mini-Late-2012.local:  [  5]   4.00-5.00   sec   131 KBytes  1.07 Mbits/sec  15  
Mac-mini-Late-2012.local:  [  5]   5.00-6.00   sec   122 KBytes  1.00 Mbits/sec  14  
Mac-mini-Late-2012.local:  [  5]   6.00-7.00   sec   131 KBytes  1.07 Mbits/sec  15  
Mac-mini-Late-2012.local:  [  5]   7.00-8.00   sec   131 KBytes  1.07 Mbits/sec  15  
Mac-mini-Late-2012.local:  [  5]   8.00-9.00   sec   122 KBytes  1.00 Mbits/sec  14  
Mac-mini-Late-2012.local:  [  5]   9.00-10.00  sec   131 KBytes  1.07 Mbits/sec  15  
Mac-mini-Late-2012.local:  - - - - - - - - - - - - - - - - - - - - - - - - -
Mac-mini-Late-2012.local:  Test Complete. Summary Results:
Mac-mini-Late-2012.local:  [ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
Mac-mini-Late-2012.local:  [  5]   0.00-10.00  sec  1.25 MBytes  1.05 Mbits/sec  0.000 ms  0/147 (0%)  sender
Mac-mini-Late-2012.local:  [  5]   0.00-10.00  sec  1.25 MBytes  1.05 Mbits/sec  8141107.804 ms  0/147 (0%)  receiver
Mac-mini-Late-2012.local:  CPU Utilization: local/sender 3.8% (0.7%u/3.1%s), remote/receiver 0.0% (0.0%u/0.0%s)
Mac-mini-Late-2012.local:  
Mac-mini-Late-2012.local:  iperf Done.

GitHub Issue Notebooks で、このリポジトリの Issues を検索してみた

vscode の GitHub Issue Notebooks 拡張機能で遊んでみた:

The VS Code GitHub Issue notebook extension enables you to run issue queries from within VS Code so that queries and results are displayed interleaved - just like in other notebook applications.

GitHub にリポジトリとか関係なく適当な場所に .github-issues という拡張子を持つ適当な名前をつけたファイルを用意し、それを開くことで利用可能。

0.0.95 かで New GitHub Issue Notebook コマンドが追加されたので、実行すれば、Unitiled-x.github-issues を作成してくれるようになった。

$xxx に repo:リポジトリ名 をセットして、以降は、$xxx に対して Qualifier してゆく。
下記は、satokaz/hitorigoto リポジトリで自分(author:@me)が立てた、まだ close されていない issue (is:open) を表示する例:

$hitorigoto=repo:satokaz/hitorigoto
$hitorigoto author:@me is:open

Issue およびプルリクエストを検索する に従って、Issue や PR を検索できる。

スクリーンショット 2021-01-02 13 27 56

.github-issues が置かれているリポジトリのみという事ではなく、それ以外も対象にできる:
下記は、microsoft/vscode リポジトリの issues の中身に "big sur" という keyword を含んで作成された Issue を新しい日付から順にソートして表示する:

$vscode=repo:microsoft/vscode 
$vscode "big sur" sort:created-desc in:body 

ちなみに、検索結果のところに Open 94 results と見えるが、こいつをクリックすると検索にヒットした全ての Issue をブラウザの tab で開きにゆくので注意:

image

ZFS Storage Appliance で OCI オブジェクト・ストレージ互換機能を利用する - OCI CLI から叩く

OCI CLI のインストール

Originally posted by @satokaz #24 (reference)

OCI オブジェクト・ストレージ互換機能は、OCI オブジェクト・ストレージ native API を提供する。
そのため、OCI オブジェクト・ストレージ native API を叩けるクライアントが必要になるが、これを OCI CLI で代用する。
例えば、OCI CLI を改変する必要なく、oci os コマンドで基本機能の操作ができる。

インストールについては、下記の記事で:

OCI CLI で OCI API mode 用の設定をする場合

ここで説明する方法は、oci setup config により、ZFS Storage Appliance の OCI オブジェクト・ストレージ互換機能を利用するためだけのセットアップとなる。
すでに、OCI CLI をインストールしていたり、使いこなしている場合は、プロファイルを手動で追加する。

oci config setup の実行

OCI CLI のインストールは完了し、oci コマンドを叩ける状態になっていなら、下記を実行する:

% oci setup config

重要になるのは、下記:

  • OCID (Oracle Cloud Identifier) の入力を求められる箇所があるが、OCID format (例: ocid1.user.oc1..)に沿った値を入力する必要がある
  • ZFS Storage Appliance 上に作成した OCI オブジェクト・ストレージ互換機能を利用するユーザー名: (例 - kazus) を OCID format にする必要あり
  • OCI オブジェクト・ストレージ互換機能には、tenancy の考え方がない
  • OCI オブジェクト・ストレージ互換機能には、region の考え方がない。そのため、--endpoint を指定する必要がある

上記を踏まえて、OCI オブジェクト・ストレージ互換機能を利用するために必要な入力項目は下記のようになる:

  • Enter a user OCID: には、ocid1.user.oc1..kazus (kazus の部分は、ZFS Storage Appliance に作成したユーザー名)
  • Enter a tenancy OCID: には、ocid1.tenancy.oc1..nobody (nobody の部分は適当に)
  • Enter a region by index or name(e.g. には 適当なリージョンを選択

本物 user OCID を持っているなら、ocid1.user.oc1.. より後ろの値をユーザー名として ZFS Storage Appliance に登録するのもありのような気がするが、なんとも言えない。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.