質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • CentOS

    2830questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

/dev/nst0への書き込みについて

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 746

nob777

score 102

/dev/nst0でテープデバイスへ書込みを行う場合、テープは巻き戻されずに追記で書き込まれます。

■質問事項
以下図の⑧付近でテープデバイスに対して書き込もうとした場合の挙動を
お教え願います。
※自動でテープの先頭まで巻き戻った後に、書込みが行われるのでしょうか?その場合、途中まではテープ後方部にも書込みデータの一部が存在して
しまうことになるのでしょうか?

![イメージ説明説明](144adca63a804bf6a49a5c271c39f051.gif)](cbbf38fa2324a1cea2329948aa4cff85.gif)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+4

/dev/nst0は、自動的に巻き戻されないテープ装置のデバイスです。

  • 図の⑧まで書き込んだ場合、テープドライブのヘッドが最後のEOFを書き込んだ直後で、テープは停まっています。
  • 再びテープデバイスに書き込むと、そのEOFの後に、データ (と、もうひとつのEOF) が書き込まれます。/dev/nst0に書き込んだのなら、再びテープは最後のEOFの直後で停まります [1]。

テープには、EOFで区切られた複数のデータブロック (レコード) が記録されることになります。

mt(1)コマンドを使えば、レコードからレコードへ移動できます。次のEOFの位置まで移動することで次のレコードの先頭へ、前の前のEOFの位置まで移動することで前のレコードの先頭へ移動できます (詳しくはman mtして下さい)。これにより、特定のレコードへ移動した上で、そのレコードの内容を読み取ったり、またはデータを書き込んでレコードの内容を更新したりできます (当然、書き込むデータは元のレコードより長くてはいけません。次のレコードを上書きして壊してしまいますから)。

こうして、1本のテープに複数のデータを格納して管理することができます (もっとも、データを区別する方法は「テープの最初から何番目のレコードか」ということだけです。ディスク上のファイルシステムのようにファイル名をつけたりディレクトリで分けたりはできません) [2]。

ところで、テープにはもともと何か書いてあったかもしれません。新たに書き込みして途中まで上書きした場合、上書きした場所より後にあるレコードは、まだ読み出せるかもしれません。途中まで上書きされたレコードについては、残りのデータも壊れてもう読み出せないかもしれません。


[1] もともと巻き戻すデバイスがあって巻き戻さないオプションができたのではないです。逆で、初期のテープ装置には巻き戻し機能がありませんでした (巻き戻しは、テープを装置から外して手作業、または専用の機器で行いました)。そのためデバイス名で、巻き戻しに対応したものとしていないものを区別しました。

[2] 「これ以降はデータがない」ということを示すために、最後にEOFを2回 (以上) 続けて書き込んでおく、といった規約を設ける場合もあります。テープのこれ以降は空き領域とみなし、読み込みに使いません。新規のレコードを追加するときは、2個目のEOFを上書きして書き込みます。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/11 22:09

    ご回答ありがとうございます!
    テープの終端に達しても自動で巻き戻すようなことはないのですね。
    もし⑧付近で書き込もうとしたデータのサイズが大きすぎて書ききれない場合は、どのような挙動となるのでしょうか?
    ※書き込む前にエラーとなる?それとも書込み途中でエラーとなる?

    キャンセル

  • 2017/01/11 22:23

    装置の仕様によりますが、現在のものならkjmlさんのおっしゃるように、書き込みが一時停止して次のテープに入れ替えるように促すのが普通ではないかと思います。そういう機能を持っていないものなら、テープが終わったところで書き込みがエラー終了します。

    キャンセル

  • 2017/01/12 20:28

    ご回答ありがとうございます。
    確かに装置の仕様も確認した方がよさそうですね。
    別途、確認したいと思います。
    ※手元に検証できる機材が無く、全て机上での確認作業となってしまうのが辛いところです。

    キャンセル

+1

過去の経験からですが
1本のテープに収まりきらないようなデータをテープにバックアップしようとした時には、
途中まで(入りきるところまで)1本目のテープにバックアップされ、
2本目のテープに変えるように促され、
2本目のテープに続きがバックアップされていました。
リストア時にも同じように1本目からリストアを開始すると途中で2本目を要求されました。
参考になりますでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/11 22:11

    ご回答ありがとうございます。
    なるほど。促すのはどのような形ででしょうか?
    例えばtar cvfによるバックアップを行っていた場合は、tar実行時の標準出力で促されるのでしょうか?

    キャンセル

  • 2017/01/12 11:49

    ikedas さんが詳しく説明しておられますね。
    私は曖昧な記憶が頼りですのであまり正確ではないかもしれません。
    参考程度にお願いします。

    デバイス名 /dev/nst0 の「n」はたしか「norewind」(巻き戻しなし)の「n」であり、
    「n」のない/dev/st0 を使用した場合には自動で巻き戻されたような気がします。
    (すみませんがそのときの挙動についてはあまり記憶が有りません)
    おそらくikedas さんがおっしゃるような上書きの状態になると思いますが、
    これは1テープに(収まる量の)1バックアップを想定した使用方法ではないでしょうか。

    2本目以降のテープに変えるよう促される時の状態ですが、
    なにぶん古い記憶で、dump/restore コマンドの場合しかわかりませんが、
    コマンドを実行したコンソール画面(標準出力)にそのままメッセージが出ました。
    テープを入替えたか(Yes/No)も表示されて答えると(y+Enter)続きが始まりました。

    cpioも同じだったと思いますが、tarと共に1本に収まる程度の少量データしか扱った事がなく、
    また、tarコマンドは何かとテープと相性が悪くて使わなくなりました。
    (不良場所をスキップできずバックアップデータが破損など)

    あまり参考になる情報でなくてすみません。

    キャンセル

  • 2017/01/12 20:39

    ご回答ありがとうございます。
    現在のバックアップはツールにより行わるため、もしテープ終端まで達した場合はどうなるのか・・・。毎日約4年ぐらい保存し続けているのですが、まだエラーもなく保存し続けています。
    そのため、実はテープ終端に達したら自動で巻き戻って、先頭から上書きしているのではないかと思いまして質問させていただきました。別途、テープ装置の仕様を確認したいと思います。

    ※サーバ含むテープドライブ自体が遠隔地にあるため、クリーニングも全く行っていないです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • CentOS

    2830questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。