Changes between Initial Version and Version 1 of epics/Archiver Appliance 運用メモ(EL6版)


Ignore:
Timestamp:
09/06/24 12:08:55 (3 months ago)
Author:
shuei
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • epics/Archiver Appliance 運用メモ(EL6版)

    v1 v1  
     1[[PageOutline]] 
     2 
     3= はじめに = 
     4このドキュメントは、J-PARC加速器向けに​インストールしたArchiver Appliance (AA)の運用メモです。適宜読み替えて下さい。  
     5 
     6AAを運用するには、[http://jkjarchiver-ap.mr.jkcont:17665/mgmt/ui/index.html 管理用webapp]を使うか、 
     7[https://slacmshankar.github.io/epicsarchiver_docs/api/mgmt_scriptables.html Business Process Logics (BPL)]と呼ばれるAPIを使います。 
     8 * BPLを使ったスクリプトの例が次のURLにあります 
     9{{{ 
     10https://github.com/slacmshankar/epicsarchiverap/tree/master/docs/samples 
     11}}} 
     12 
     13J-PARC加速器向けのBPLを使ったスクリプトはMercurialでバージョン管理していて、リポジトリは 
     14{{{ 
     15/jk/dev/operation_app/jkControl/ArchiverAppliance/mgmt/ 
     16}}} 
     17に置かれています 
     18 * 必要に応じてツールが増えていくことでしょう 
     19 * 2018年8月現在、リポジトリはJ-PARCの加速器制御ネットワーク内からのみアクセス可能です 
     20 
     21= AAにアーカイブするレコードを登録する = 
     22== スクリプトからレコードを登録する == 
     23archivePV.pyを走らせて、複数のレコードをAAに登録することができます ([https://slacmshankar.github.io/epicsarchiver_docs/api/mgmt_scriptables.html /archivePV を使う]) 
     24* -p オプションでサンプリング間隔を指定できます 
     25* -s オプションをつけるとScanになります(デフォルトはMonitorです) 
     26* -n オプションをつけると、登録直後に/skipAliasCheckを呼びます[[Archiver Appliance 運用メモ#AAとレコードのaliasと古いIOC|(後述)]] 
     27* -h オプションをつけるとhelpが表示されます 
     28{{{ 
     29% archivePV.py -h 
     30usage: archivePV.py [-h] [-u URL] [-p NUM] [-s] [-n] pv [pv ...] 
     31 
     32positional arguments: 
     33  pv          list of PVs 
     34 
     35optional arguments: 
     36  -h, --help  show this help message and exit 
     37  -u URL      This is the URL to the mgmt bpl interface of the appliance cluster. 
     38              [Default: http://jkjarchiver-ap.mr.jkcont:17665/mgmt/bpl] 
     39  -p NUM      Set sampling period to NUM secs [default: 1.0] 
     40  -s          Set to SCAN mode [default: MONITOR] 
     41  -n          Skip alias check 
     42}}} 
     43 
     44== AAの管理画面からレコードを登録する == 
     45 1. webブラウザで[http://jkjarchiver-ap.mr.jkcont:17665/mgmt/ui/index.html 管理用webapp]にアクセスします 
     46 2. テキストボックスにレコード名を入力します 
     47[[Image(AA-archivePV-01.png,500px)]] 
     48 3. Archive (specify sampling period)をクリックするとSampling period等の入力画面に切り替わります 
     49 4. Sampling mode (Monitor/Scan)とSampling periodを入力します。その他の設定は入力しないでおきます 
     50[[Image(AA-archivePV-02.png,500px)]] 
     51 5. OKをクリックします 
     52 6. 数分待ってCheck statusをクリックし、statusの欄が'Being archived'になったことを確認します 
     53 
     54== Channel Archiverの設定からアーカイブするレコードをimportする == 
     55AAはChannel Archiverの設定からアーカイブするレコードをimportすることができます 
     56 1. Integration をクリック(http://jkjarchiver-ap.mr.jkcont:17665/mgmt/ui/integration.html にforwardされる) 
     57 1. Upload Channel Archiver Configuration の"参照"ボタンをクリック 
     58 1. ダイアログにChannel Archiverのxmlファイルを指定してOKをクリック 
     59 1. "Upload"ボタンを押す 
     60 1. 既にアーカイブされているレコードの設定(sampling method, sampling mode)を変えることはできません 
     61 1. [[Archiver Appliance 運用メモ#AAとレコードのaliasと古いIOC|/skipAliasCheck]]は指定できません 
     62 
     63= アーカイブを停止する = 
     64AAからレコードを削除すると、保存してあるデータも削除されてしまいます。 
     65 * アーカイブを停止した後もデータを読み出したい場合は、AAからレコードを削除してはいけません。 
     66 * アーカイブを停止した後もデータを読み出したい場合は、AAからレコードを削除してはいけません。 
     67 
     68== スクリプトから停止する == 
     69pausePV.pyを使うと、複数のレコードのアーカイブを停止できます ([https://slacmshankar.github.io/epicsarchiver_docs/api/mgmt_scriptables.html /pauseArchivingPV を使う]) 
     70 * -h オプションをつけるとhelpが表示されます 
     71{{{ 
     72% ./pausePV.py -h 
     73usage: pausePV.py [-h] [-u URL] pv [pv ...] 
     74 
     75positional arguments: 
     76  pv          list of PVs 
     77 
     78optional arguments: 
     79  -h, --help  show this help message and exit 
     80  -u URL      This is the URL to the mgmt bpl interface of the appliance cluster. For 
     81              example, http://jkjarchiver-ap.mr.jkcont:17665/mgmt/bpl 
     82}}} 
     83 
     84== AAの管理画面から停止する == 
     85 1. webブラウザで[http://jkjarchiver-ap.mr.jkcont:17665/mgmt/ui/index.html 管理用webapp]にアクセスします 
     86 2. テキストボックスにアーカイブを停止したいレコード名を入力します 
     87  * レコード名にはワイルドカードが使えます 
     88[[Image(AA-pausePV-01.png,500px)]] 
     89 3. Check Statusをクリックすると、マッチしたレコードの一覧が表示されます 
     90[[Image(AA-pausePV-02.png,500px)]] 
     91 4. 各レコードのDetailをクリックし、レコードの詳細情報を表示します 
     92[[Image(AA-pausePV-03.png,500px)]] 
     93 5. Pause archivineをクリックすると、アーカイブが停止します 
     94[[Image(AA-pausePV-04.png,500px)]] 
     95 
     96= AAの運用状況を確認する = 
     97== AAのログを確認する == 
     98{{{ 
     99find /opt/archappl -wholename '*/logs/*' | xargs grep xception 
     100find /opt/archappl -wholename '*/logs/*' | xargs grep FATAL 
     101find /opt/archappl -wholename '*/logs/*' | xargs grep OutOfMemoryError 
     102}}} 
     103 
     104== レコードの状態を確認する == 
     105=== スクリプトから === 
     106 * checkNeverConnectedPVs.py 
     107 * checkCurrenctlyDisconnectedPVs.py 
     108 * checkPausedPVs.py 
     109 * checkTypeChangedPVs.py 
     110 * getPVsByDroppedEventsBuffer.py 
     111 
     112=== ブラウザから === 
     113 1. webブラウザで[http://jkjarchiver-ap.mr.jkcont:17665/mgmt/ui/index.html 管理用webapp]にアクセスします 
     114 1. テキストボックスにレコード名を入力します 
     115 1. Check statusをクリックします 
     116 1. 各レコードのDetailsをクリックすると、より詳細な情報が表示されます 
     117  * レコード名にはワイルドカード(*)が使えます 
     118  * アーカイブされている場合はstatus欄が'Being archived'になります 
     119  * レコードを登録してから数分間、AAはレコードの情報を収集します。その間はstatusの欄が'Initial sampling'になります 
     120  * レコードが見つかるまで、statusは'Initial sampling'のままです 
     121  * 登録されていないレコードや、古いIOCでレコード名が長すぎる場合は'Not being archived'になります 
     122[[Image(AA-archivePV-03.png,500px)]] 
     123 
     124= AAの落とし穴 = 
     125 
     126== レコードタイプが変わった場合 == 
     127アーカイブしているレコードの型が変わった場合、AAはそのレコードのアーカイブを停止するようになっています(参考: [https://slacmshankar.github.io/epicsarchiver_docs/admin.html https://slacmshankar.github.io/epicsarchiver_docs/admin.html])。 
     128 * checkTypeChangedPVs.py でレコードタイプが変わったためにアーカイブが停止しているレコードを調べます ([https://slacmshankar.github.io/epicsarchiver_docs/api/mgmt_scriptables.html /getPVsByDroppedEventsTypeChange を使う]) 
     129 
     130アーカイブを再開するには、次の以下の2つの方法があります: 
     131 * アーカイブ内のレコード名を変える 
     132  1. 現行のレコードをpauseする 
     133  1. 新しい名前に変える ([https://slacmshankar.github.io/epicsarchiver_docs/api/mgmt_scriptables.html /renamePV を使う]) 
     134  1. 旧名のレコードを削除する 
     135  1. 新規にアーカイブに追加する 
     136 * アーカイブのレコードタイプを変える 
     137  1. レコードのアーカイブをpauseする 
     138  1. consolidateDataForPV.pyでconsolidateする ([https://slacmshankar.github.io/epicsarchiver_docs/api/mgmt_scriptables.html /consolidateDataForPV を使う]) 
     139  1. 過去データのpbファイルを全て書き換えるので、pbファイルをバックアップしておくのが望ましい 
     140  1. バックアップ先は、例えば /localdata/archappl/backup-typechange/YYYYMMDD/ にしておく 
     141  1. Channel Archiverから変換したデータもバックアップするか、退避してデータタイプを指定して再度変換する 
     142  1. changeTypeForPV.py でレコードタイプを変える ([https://slacmshankar.github.io/epicsarchiver_docs/api/mgmt_scriptables.html /changeTypeForPV を使う]) 
     143   * [http://slacmshankar.github.io/epicsarchiver_docs/api/org/epics/archiverappliance/config/ArchDBRTypes.html 指定できるレコードタイプの一覧] 
     144  1. アーカイブを再開する ([https://slacmshankar.github.io/epicsarchiver_docs/api/mgmt_scriptables.html /resumeArchivingPV を使う]) 
     145 
     146== AAとレコードのalias(と古いIOC) == 
     147 * AAに登録したレコードがaliasの場合、AAは本名でアーカイブしようとします 
     148  * レコード名とNAME$フィールドが異なる場合は、NAME$フィールドの文字列を本名として扱います 
     149  * NAME$フィールドがない場合は、NAMEフィールドを使います 
     150 * 名前が40文字以上のレコードが3.14.10かそれ以前のIOCにある場合、AAへの登録に失敗します 
     151  * IOCのepics baseが3.14.10或いはそれ以前の場合、NAME$フィールドはありません 
     152  * レコード名が40文字以上の場合、NAMEフィールドは39文字に切り詰められます。そのため、本名のレコードを見つけることができません 
     153 * 登録直後に[https://slacmshankar.github.io/epicsarchiver_docs/api/mgmt_scriptables.html /skipAliasCheck?pv=...]を呼ぶと、aliasのチェックを省略します 
     154 
     155== Aliasのみのレコード登録(路川@東日技研) == 
     156 * skipAliasCheckを付けてAAに登録すると、そのレコードは通常の方法では設定の変更/削除が不可能になる。(最新版で確認済) 
     157  * アーカイブ条件の変更、pause等の操作が効かない。→ Aliasの本名のレコードを操作しようとしてエラーになる。 
     158  * 登録を削除するためには、pauseしないと削除できない。→ 削除しようとするのはAlias。 
     159 * 操作を受け付けるようにするには、DBのPVAliasesに登録されている該当レコードを直接削除して、AAを再起動。 
     160  * この操作を行うと、AAはAliasレコードではないと判断するようで、通常の操作を受け付けるようになる。 
     161  * '''動作の保証はできないので、自己責任で。''' 
     162 
     163= 参考 = 
     164* [https://slacmshankar.github.io/epicsarchiver_docs/admin.html Archiver Appliance Administration Guide] 
     165* [https://slacmshankar.github.io/epicsarchiver_docs/api/mgmt_scriptables.html Business Process Logics for scripting]