2022年2月26日土曜日

【100】iRODSのiCommandsを試す

じゃじゃん~ 久々にブログ担当に復帰しました。
iRODSの本格的な動作の確認が出来ず、時間が経っているのですが、この問題を解決できるだろうかと不安になってきました。若干諦めモードになっていますが、今日も素直にマニュアルに沿って進めてみます。

まず、マニュアルはここ↓
iRODS Beginner Training with iRODS 4.2
https://github.com/irods/irods_training/blob/main/beginner/irods_beginner_training_2019.pdf

今日は5章あたりをやってみます。

今日は、Aliceでログインして、Githubから練習のためのtraining_jpgs.zipをダウンロードしている状態で始めます。(~5.4)

irm, imv
iCommandをいくつか動かしてみる作業です。
前回(?)以下でpeanuts.jpgを削除してみましたので
$ irm /tempZone/home/alice/training_jpgs/peanuts.jpg

以下のコマンドで、もとに戻せるかを試します。

しかし、なぜかエラーが出ました。(もしかしたら前回ゴミ箱(trash)を捨てたかのかしら)そこで、別のファイルを削除して、戻してみます。


今度はうまくできました。

irepl
次は、レプリカを作ってみます。レプリカは同一の物理的コピーを意味します。



ここでエラーが出ました。
irepl -R newResc training_jpgs/waffle.jpg
remote addresses: 192.168.56.2 ERROR: replUtil: repl error for /tempZone/home/alice/training_jpgs/waffle.jpg, status = -347000 status = -347000 USER_SOCK_CONNECT_TIMEDOUT

USER_SOCK_CONNECT_TIMEDOUT -347000 
良く分かりませんが、以前からずっと出ている上記のエラーについて何とか調べることに。
Trouble shootingの文書から、このエラーに対する対策があったのでやってみます。


iRODS Server is down

1.ienv
  • The ienv command displays the iRODS environment in use. This may help debug the obvious error of trying to connect to the wrong machine or to the wrong Zone name.


やってみたところで、何も解決のヒントがありません。説明を読んでもなんの役にも立ちません。( ノД`)シクシク…

2.Networking issues
  • Verify that a firewall is not blocking the connection on the iRODS ports in use (default 1247 and 1248) (or the higher ports for parallel transfer).

    スクショ忘れましたが、以下のコマンドで1247, 1248のポートがLISTENの状態であることを確認しました。

    netstat -lntp

  • Check for network connectivity problems by pinging the server in question.
    これについても、以下のようにpingで動いていることは確認しましたが、だからなに?という感じです。笑


3.iRODS server logs
  • If the iRODS environment issues and networking issues have been ruled out, the iRODS server/client logs may provide additional information with regards to the specifics of the error in question.

    サーバーログは、rodsLogで確認できます。 https://docs.irods.org/master/system_overview/troubleshooting/#the-server-log-rodslog からの説明↓
    The Server Log (rodsLog)
    The iRODS server log (rodsLog) is the best place to find a history of what has happened and any error codes and file paths that may explain unexpected behavior. The rodsLog is found at /var/lib/irods/log/rodsLog*. The rodsLog is rotated every few days, so make sure you're looking at the latest file for recent error messages. The debugging level (below) affects how many messages are written to the rodsLog. 
    実際は、/var/lib/irods/log/に入ると、以下のようなファイルが見えます。 














    そこで、一番最新のログファイルを、以下のコマンドで開いてみました。

    vim rodsServerLog.2022.02.21

    その結果がこれです。

    Feb 25 20:04:51 pid:13044 remote addresses: 127.0.0.1, 192.168.56.2 ERROR: _rcConnect: connectToRhost error, server on 192.168.56.1:1247 is probably down status = -347000 USER_SOCK_CONNECT_TIMEDOUT
    Feb 25 20:04:51 pid:13044 remote addresses: 127.0.0.1, 192.168.56.2 ERROR: [create_physical_file_for_replica:115] - rsFileCreate failed [error_code=[-347000], path=[/tempZone/home/alice/training_jpgs/waffle.jpg], hierarchy=[newResc]]
    Feb 25 20:04:51 pid:13044 remote addresses: 127.0.0.1, 192.168.56.2 ERROR: [create_new_replica:505] - l3Create failed [error_code=[-347000], path=[/tempZone/home/alice/training_jpgs/waffle.jpg], hierarchy=[newResc], physical_path=[/var/lib/irods/new_vault/home/alice/training_jpgs/waffle.jpg]]
    Feb 25 20:04:51 pid:13044 WARNING: [unlock_impl:214] - failed to restore status for replica because no original status found in data_status column. Setting replica status to stale. [data_id=[10028], repl_num=[1]]
    Feb 25 20:04:51 pid:13044 remote addresses: 127.0.0.1, 192.168.56.2 ERROR: [restore_replica_statuses:122] - failed to restore status for replica; original status not found in data_status column [data_id=[10028], repl_num=[0]]
    Feb 25 20:04:51 pid:13044 remote addresses: 127.0.0.1, 192.168.56.2 ERROR: [replicate_data_object:748] - failed to replicate [/tempZone/home/alice/training_jpgs/waffle.jpg]
    Feb 25 20:04:51 pid:13044 NOTICE: rsDataObjRepl - Failed to replicate data object. status:[-347000]

ここで、また-347000を発見。あれ?最初に戻った?なんだか、説明を読んでも説明になってないお見事な説明です。役所に電話してたらいまわしにされた感じです。たらいまわしになったら、一旦やめるべきですね。(笑)

とういう事で今日はここまでです!

※今日必要となったサイト

====================
次回は3/18です~




2022年2月25日金曜日

【98】irodsのエラーで五里霧中

 2022/02/11

5.4 Working with Data Objects

を実行しようとしたら、エラーが頻発し、rodsとしてログインさえできませんでした。


メンバー同士でirodsの-305111エラーの対処方法を探ってみましたが、解決できず...残念な夜でした。


irodsにログインすると自動生成されるログイン情報 /home/irods/.irods/irods_environment.jsonファイルを削除して、再度ログインしてみたのですが、やはりirodsにつながらず、でした。


投稿が遅れて大変申し訳ありませんでしたが、2月11日金曜日は、なかなか困難が多い日でした。

次回、別の機械から5.4を再挑戦してみたいと思います。

2022年2月14日月曜日

【99】M1 MacにVirturalBoxが使えず・・・:UTMの使用

こんにちは。今回は、M1 MacでVirturalBoxが使用できない問題について、UTMの導入方法とクライアントOSのインストール設定について備忘録的に書きます。
M1 Mac、性能が高くMBAのコストパフォーマンスが高いため、使用されている方が多くいらっしゃると思います。私もIntelMBP→M1MBAに今更ながら乗り換えたのですが、VirturalBoxが使用できないということがわかり、また、なかなか対応にならないことから別のアプリケーションを試すことにしました。それが、今回扱います“UTM”です。結論から言えば、今のところ全く問題無く活用できます。少し調べればどこにでも書いてあることをなぜこここに?と思われるかと思いますが、こちらを見にきていただいている方のなかで、もしも困っている方がいらっしゃったらと思い、書くことにしました。Windows、ネイティブLinuxマシーンを使ってらっしゃる方には全く意味が無いことですが、意図をご理解いただけると幸いです。

UTMのダウンロード・インストール


アプリケーションは下記のURLからダウンロードし、通例通りインストールしてください。
https://mac.getutm.app

VirtualマシーンのOSは道場で常に使っているUbuntu Server 18.04を選択しました。
それではVM環境を作って行きます。

VMマシーンの作成

UTMを走らせると、次の画面になります。















ここでは“Create a New Virtual Machine”を選択します。
すると次の画面が表示されますので、“Virtualize”を選択します。
















次にOSの選択画面にが出ますので、今回は“Linux”を選択します。















BOOTのISO Imageを設定します。“Browse”からISOファイルを設定してください。















VM環境で使うメモリとストレージ容量を自分の好みに合わせて設定します。















“Shared Directory”は今回はスルーです。
VMの名前を決めて“SAVE”します。















ここで、左側に今作ったVM(test)が表示されますので、そこで右クリックし、“edit”を選択します。















“System”メニューを選択し、“Architecture”から“X86_64”を選択します。

















これで終わりです。CPU等の設定も可能となっています。動作が重い場合はいじってみてください。

OSのインストールはこれで可能となります。再生マークをクリックしてください。インストールが始まります。














注意

一点注意が必要なことはOSインストールの後にリブートしますが、その前にBOOTのISO Imageファイルを再読込してしまうことを防ぐため、CD/DVDをクリアーしておいてください。






以上です。Parallels使えば?と思われると思いますが、お金がないんです。その分酒が飲みたいのです。ということで、参考になったら幸いです。






2022年2月11日金曜日

【97】iRods:Storage resourceを作る・PostgreSQLを確認する

2022/01/14 beginnersマニュアル p.15~です。

iinitの設定で問題がある場合や、ユーザの切り替えの際には、p.16を参照し、irods_environment.jsonファイルを削除して、再度正しく接続しましょう。

$ iexit full

$ rm ~/.irods/irods_environment.json


AliceとBobbyのユーザ作成、パスワード変更まで順調に進みます。


それでは、iadminをつかって、AliceとBobbyが操作できるようなセットアップをしてあげることをやってみます。/var/lib/irods/new vaultにストレジリソースを作ります。

p.16~ Let's create a storage resource so that Alice can try out iCommands in the next subsection. When we installed iRODS, the setup script created an initial iRODS storage resource, demoResc.

Please Note - demoResc is not for production use, but we will use it for training purposes.

$ iadmin mkresc newResc unixfilesystem 'hostname':/var/lib/irods/new_vault

ですが、残念ながら間違った操作をしたことで、エラーになりました。


エラー:$ iadmin mkresc newResc unixfilesystem マシーンのname:/var/lib/irods/new_vault

正しい:$ iadmin mkresc newResc unixfilesystem 自分のサーバーのIPアドレス(マシーンのnameではありません):/var/lib/irods/new_vault

(94回目をご参照:http://irisawadojo.blogspot.com/2021/11/94irodsicommand.html)

もう一度、正しいhostnameにしてnewRescを作ってみたら、すでに存在している...

ということで、マニュアルを参照して、他にストレジリソースを作って実行する手もありますが、以前newResc(new resource)の代わりに別のResc(95回:wonResc)を作成したところ、あれこれうまく進まないことがあったので、今回は間違って作ったnewRescをデータベースから削除して、マニュアル通りに進めていくことにします。

まず、p.9~10を参照して、PostgreSQLの中から、new_vaultフォルダの中のnewRescを削除するか、iadminを使って削除するかを判断するために、PostgreSQLの中を調べることから始めます。MySQLとは構文が違うので、PostgreSQLの構文は神業(=みんなでググる~とQuiitaさん)で進めていきます。

su権限でPostgreSQLに入ります(ここからは、psqlと書きます)

$ sudo su - postgres

$ psql

postgres=# \l (逆スラッシュエル・存在するデータベースを表示する)

postgres=# \c ICAT (p.10で作成したirods用のデータベースICATに接続)


ICAT=# \dt; (ICATの中のテーブル一覧を見せて)

ICAT=# select * from r_resc_main; (r_resc_mainというテーブル内のデータの一覧をみせて)

としてら、私たちが間違って作ったnewRescが入っていました。

(postgresだけではなく、sqlの操作もグーグルとQiitaに頼ってきていますので、ご容赦ください。恥ずかしいですが、ワレワレはsqlの操作方法など、身に着けていません。)


ということで、newRescのデータの場所が確認でき、中身が空っぽになっていることもわかりました。やはり、間違って作られていました。

iadminで削除したものと、postgresから削除することの相違を確認ができないため、今回はpostgresからnewRescを削除せず、iadminを使って削除することにしました。

ICAT=# \q (ICATデータベースからquit)

$ exit (postgresからexit)

「iadmin rmresc Name」でstorage resourceを削除することができます。(参照:https://docs.irods.org/master/icommands/administrator/)

$ iadmin rmresc newResc

これで、newRescが削除されたことを再度確認します。



ということで、遠回りしましたが、再度newRescを作成し、成功しました。


その後、5.2 Logging In with Aliceと5.3 Basic Navigationを済ませました。


次回は5.4 Working with Data Objectsから作業します。

もう昨年のことですが、当初、マニュアルの6.3 Building a Treeを実行していた際に、【96】iRODSのVirtualization失敗になったため、今、みんなとワイワイと復習をしているんです。細かい説明がないところは、前回までのブログやマニュアルをご参照ください。
手探りではありますが、少しずつirodsの働き方やデータベースの構成などがわかっていく気がします。

次回は2/7(金)です。よろしくお願いいたします。

(p.s この記事作成が1か月も遅れてしまい、申し訳ありませんでした。間違った記述などは、発見した際にその都度修正していきます。)


最近の投稿

【108】Archives in the Digital Age: The use of AI and machine learning in the Swedish archival sectorを読む

 Gijs Aangenendt氏の修士論文、Archives in the Digital Age: The use of AI and machine learning in the Swedish archival sectorを半分読みました。 前半は、AIを扱ったアーカ...

人気の投稿