Changes between Initial Version and Version 1 of epics/Archiver Appliance 運用メモ


Ignore:
Timestamp:
08/16/18 17:36:04 (16 months ago)
Author:
shuei
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • epics/Archiver Appliance 運用メモ

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