努力したWiki

推敲の足りないメモ書き多数

ユーザ用ツール

サイト用ツール


documents:windows:nas:nas-001

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
documents:windows:nas:nas-001 [2026/01/26 04:30] – [同時接続数は最大20接続です] k896951documents:windows:nas:nas-001 [2026/04/25 04:34] (現在) – [Windowsの入ったMiniPC採用] k896951
行 1: 行 1:
 +====== MiniPCをNAS代わりにする ======
  
 +2026-01-25\\ 「ファイル履歴」で任意のフォルダ追加ができなくなってたのでROBOCOPYを使う内容に変更\\ \\ 
 +2026-01-16\\ 質問等があったのでその説明用\\ \\ 
 +
 +
 +===== Windowsの入ったMiniPC採用 =====
 +
 +
 +元々はFreeBSDにSambaを載せてNAS環境を作っていたんだけど、いつの頃からか共有フォルダへの接続ができなくなってしまったので、お安めのWindows入りPCで代替しようと考えました。
 +
 +その為購入したのがこちら。購入当時は2万円いかない価格でした。ゲームや重い処理をやる訳でもないのでスペック的にこのくらいで良かったわけです。
 +このMiniPCにUSBハブ経由でストレージを接続してNASとして利用する事になります。内蔵SSDの容量が足りませんからね。
 +
 +{{.:pasted:20260124-233845.png?nolink&600}}
 +
 +
 +===== 実際の設定 =====
 +
 +==== 大まかな構成 ====
 +
 +以下は私のところの大まかな構成です。\\ 
 +他の方はご自身の宅内ネットワークに赤線部分を追加する事になります。
 +
 +この時、
 +  * MiniPCはDHCPによるIPアドレス付与ではなく、固定IPを適用してください。Windows以外からの接続ができなくなるので。
 +  * 追加するNASアクセス用アカウントはグループAdministratorsに**属さない**ように。
 +  * MiniPCと外付けストレージは直接接続ではなくUSBハブを間に入れて接続します。…どうせすぐストレージは増える。
 +
 +{{.:pasted:20260124-232310.png?nolink}}
 +
 +実際に共有用フォルダを参照する時はこんな状況になります。
 +
 +{{.:pasted:20260125-194110.png?nolink}}
 +
 +
 +==== NASアクセス用アカウント作成 ====
 +
 +リモートデスクトップで接続しても良いし、ディスプレイとキーボード・マウスを繋いでも良いのでMiniPCにログインします。\\ 
 +ログイン出来たらNASアクセス用アカウントを作成しましょう。
 +
 +Windows 11 だと歯車アイコンの「設定」を開いてアカウントという項目があるのですが、こちらはどうもマイクロソフトアカウント必須の模様。ですので旧来からあるコントロールパネル経由で操作します。\\ 
 +スタートメニューの「Windowsツール」からコントロールパネルを呼び出して「コンピュータの管理」を起動します。起動したら「ローカルユーザーとグループ」の「ユーザー」を選択します。
 +
 +{{.:pasted:20260124-235625.png?nolink}}
 +{{.:pasted:20260124-235804.png?nolink}}
 +
 +右ペインにある「ユーザー」→「他の操作」から、「新しいユーザー(N)…」を選択します。\\ 
 +今回はアカウント nasaccess を追加します。パスワードも入れて「パスワードを無期限にする(W)」にチェックを入れておきましょう。※定期的なパスワード変更めんどいですしローカル使いだから…ねぇ…(危機感ゼロ
 +
 +{{.:pasted:20260125-000629.png?nolink}}
 +
 +「作成」ボタンを押しても「作成しました!」的なダイアログは出ないのでそのまま「閉じる」ボタンを押しましょう。アカウント nasaccess が作成された事が分かります。デフォルトの所属グループは Users になるので、気になる人は nasaccess のプロパティを開いて「所属するグループ」タブを確認すると良いでしょう。
 +<WRAP round important 60%>
 +絶対にAdministratorsグループに参加させない事。Usersグループだけにしておいた方がいいです。
 +</WRAP>
 +
 +
 +{{.:pasted:20260125-001416.png?nolink}}
 +
 +
 +==== 共有用フォルダの作成 ====
 +
 +ここではEドライブとして認識されたSSDに共有用フォルダを作成します。もし認識されていなければフォーマットやらなにやらの作業を行う必要がありますがここでは説明しません面倒だし。
 +
 +共有用フォルダの名前は Share01 という何の捻りもないものにしておきます。
 +
 +{{.:pasted:20260125-003016.png?nolink}}
 +
 +作成したらShare01のプロパティを開いて「セキュリティ」タブに切り替えて「詳細設定(V)」ボタンを押します。\\ 所有者を nasaccess に変更し、「サブコンテナーとオブジェクトの所有者を置き換える」にチェックを入れて、「OK」ボタンを押します。
 +
 +{{.:pasted:20260125-003240.png?nolink}}
 +{{.:pasted:20260125-003900.png?nolink}}
 +
 +次にShare01のプロパティの「共有」タブに切り替えます。「共有(S)」ボタンを押します。共有する相手を nasaccess だけにして「共有(H)」ボタンを押します。
 +
 +{{.:pasted:20260125-004154.png?nolink}}
 +
 +{{.:pasted:20260125-004447.png?nolink}}
 +{{.:pasted:20260125-004607.png?nolink}}
 +
 +この例だと、別のWindowsPCから \\NUCBOXG3\Share01 を指定する事でMiniPCの E:\Share01 を参照する事ができるようになります。※NUCBOXG3 は MiniPCのマシン名になります。
 +
 +{{.:pasted:20260125-004731.png?nolink}}
 +
 +アカウントを聞かれたら nasaccessと設定したパスワードを返してあげます。…無事デスクトップPCから参照できました。
 +
 +{{.:pasted:20260125-005600.png?nolink}}
 +
 +
 +==== 共有用フォルダが使えるか確認する ====
 +
 +試しにデスクトップPCからファイルをコピーしてみると、無事MiniPCの共有用フォルダにコピーされました。
 +
 +{{.:pasted:20260125-005929.png?nolink}}{{.:pasted:20260125-010029.png?nolink}}
 +
 +MiniPCからの共有用フォルダに別のファイルをコピーしてみると、無事にデスクトップPCから参照できました。
 +
 +{{.:pasted:20260125-010654.png?nolink}}{{.:pasted:20260125-010924.png?nolink}}
 +==== バックアップにROBOCOPYを使う ====
 +
 +標準機能「ファイル履歴」で簡易的な説明を…と思ったんだけど、今見たらフォルダの追加ができなくなってる……
 +※「新しいライブラリの作成」の項目が消えちゃってる
 +
 +検索エンジンで検索してみても、ソフトとしてはイメージバックアップのものしか出てこないし、困ったね………よし、ROBOCOPY を使うか。
 +
 +ROBOCOPYはWindows11の標準機能なのでダウンロードして云々はしなくて良いのでご安心ください。
 +
 +{{.:pasted:20260125-020348.png?nolink}}
 +
 +=== PowerShell実行の許可 ===
 +
 +フォルダ I:\Share_Scripts を作成し、この中にROBOCOPYを実行するPowerShellスクリプトを格納します。
 +
 +その前にPowerShellによるスクリプト実行を許可します。コマンドプロンプトを管理者権限で開き、以下のコマンドを打ち込んでおきます。
 +
 +<code>
 +powershell
 +Get-ExecutionPolicy -List
 +Set-ExecutionPolicy RemoteSigned
 +Get-ExecutionPolicy -List
 +exit
 +</code>
 +
 +{{.:pasted:20260125-022744.png?nolink}}
 +
 +=== スクリプトを用意 ===
 +
 +ROBOCOPYでバックアップを行うスクリプトを2種類用意したので好きな方をどうぞ。
 +
 +== 曜日フォルダ管理版 ==
 +
 +このスクリプトはバックアップ先に曜日毎のコピーを行います。各曜日のコピーは上書きされ、結果として7世代が維持される事になります。\\ 
 +コピー元容量の最大が1TBだった場合、バックアップ先は7TBの容量が必要になります。
 +
 +例えば、2026-01-25(日)のバックアップ後は、最大で2026-01-19(月)まで遡れます。
 +
 +<code powershell Backupcmd.ps1>
 +$backupRootPath = "I:\Share01_Backup"
 +$fromPath       = "E:\Share01\"
 +$weekFolder     = (Get-Date).DayOfWeek
 +$toPath         = ("{0}\{1}"              -f $backupRootPath, $weekFolder)
 +$logPath        = ("{0}\robocopy_{1}.log" -f $backupRootPath, $weekFolder)
 +
 +# 曜日フォルダを作る ※7世代のバックアップを作ることになる
 +New-Item -path $backupRootPath -Name $weekFolder -ItemType Directory -Force
 + 
 +# 曜日フォルダにコピーを取る
 +ROBOCOPY $fromPath $toPath * /PURGE /NP /NDL /FP /BYTES /LOG:$logPath
 +</code>
 +
 +バックアップフォルダ、ログも含めすべて上書きを行うので削除する処理は入っていません。
 +
 +== 日付フォルダ管理版 ==
 +
 +このスクリプトは、バックアップ先にスクリプト実行日のコピーを行い、実行日4日前かこれより古いコピーを削除します。結果として4世代が維持される事になります。\\ 
 +コピー元容量の最大が1TBだった場合、バックアップ先は5TBの容量が必要になります。※コピーを取った後に不要になったコピーを消すため、処理過程で5世代のバックアップが発生します
 +
 +例えば、2026-01-25(日)のバックアップ後は、最大で2026-01-22(木)まで遡れます。
 +
 +<code powershell Backupcmd.ps1>
 +$retentionDays   = 4                       ## 4日分を保持
 +$backupRootPath  = "I:\Share01_Backup"
 +$fromPath        = "E:\Share01\"
 +$now             = Get-Date
 +$DateFolder      = $now.ToString("yyyyMMdd")
 +$limitDate       = ($now.AddDays(-$retentionDays)).ToString("yyyyMMdd"   ## 削除開始日付を得る
 +$toPath          = ("{0}\{1}"          -f $backupRootPath, $DateFolder)
 +$logPath         = ("{0}_robocopy.log" -f $toPath)
 +
 +# 日付8桁フォルダを作る
 +New-Item -path $backupRootPath -Name $DateFolder -ItemType Directory -Force
 +
 +# 日付フォルダにコピーを取る
 +ROBOCOPY $fromPath $toPath * /MIR /NP /NDL /FP /BYTES /LOG:$logPath
 +
 +# 削除開始日付かそれより古い日付のフォルダ・ログを削除する
 +Get-ChildItem -Path $backupRootPath -Directory | 
 +    Where-Object {$_.Name -match '^\d{8}$' -and $_.Name -le $limitDate} |
 +        Foreach-Object {
 +          Remove-Item -Path  $_.FullName                        -Recurse -Force
 +          Remove-Item -Path ("{0}_robocopy.log" -f $_.FullName) -Recurse -ErrorAction Ignore
 +        }
 +</code>
 +
 +古いバックアップフォルダ・ログを削除しています。
 +
 +==== スケジューラへの登録 ====
 +
 +用意したPowerShellスクリプトを毎日指定の時刻にバックグラウンドで実行してもらうようにします。さすがに手動は面倒ですし…\\ 
 +※ここの説明に出てくるPowerShellスクリプトは 日付フォルダ管理版 です。
 +=== タスクスケジューラ起動 ===
 +
 +Windows11には標準機能で指定時刻に指定の処理を自動実行してくれる タスクスケジューラ があります。\\ 
 +コントロールパネルから「Windowsツール」を開くとタスクスケジューラのアイコンが出てきますので起動しましょう。
 +
 +{{.:pasted:20260125-043915.png?nolink}}
 +{{.:pasted:20260125-044034.png?nolink}}
 +{{.:pasted:20260125-044253.png?nolink}}
 +
 +=== タスク作成と登録 ===
 +
 +早速、右ペインの「基本タスクの作成」をクリックしましょう。
 +
 +まず名前を決めます。適当な名前だと後で困ったりするのでちゃんとした処理の名前と、気力があるなら説明を書いておきます。
 +
 +{{.:pasted:20260125-044614.png?nolink}}
 +
 +まぁ毎日だよね。
 +
 +{{.:pasted:20260125-045001.png?nolink}}
 +
 +処理開始日時を設定します。特に弄らなくても良いけど、起動を遅らせる必要があったりするならずらしておけばいいですね。
 +
 +{{.:pasted:20260125-044847.png?nolink}}
 +
 +先ほど用意した Backupcmd.ps1 を実行するので「プログラムの開始」を選択します。
 +
 +{{.:pasted:20260125-045308.png?nolink}}
 +
 +プログラムにPowerShell、引数の追加に「-File I:\Share_Scripts\Backupcmd.ps1」を書いておきます。
 +
 +{{.:pasted:20260125-045902.png?nolink}}
 +
 +重要な設定を行うので、「[完了]をクリックしたときに、このタスクの[プロパティ]ダイアログを開く」にチェックを入れて完了ボタンを押します。
 +
 +{{.:pasted:20260125-050016.png?nolink}}
 +
 +MiniPCは基本的に設定後はシャットダウンしないし誰もログインしないので、ログインされていなくてもタスクは実行するように変更します。\\ 
 +k896951 はこのタスクを作成したMiniPCの管理者権限を持つユーザです。ここは各人で変わるはずです。\\ 
 +これで、毎日0:10にBackupcmd.ps1が実行される事になります。OKボタンを押しましょう。
 +
 +{{.:pasted:20260125-050404.png?nolink}}
 +
 +無事に登録されました。
 +
 +=== 登録したタスクのテスト実行 ===
 +
 +動作確認のため、タスクを選択してこのダイアログの右ペインにある「実行」を押します。
 +
 +{{.:pasted:20260125-051332.png?nolink}}
 +
 +バックアップできたようです。あとはMiniPCからサインアウトして、明日自動で実行されているかを確認しましょう。
 +
 +{{.:pasted:20260125-051656.png?nolink}}
 +
 +
 +===== その他 =====
 +
 +==== 同時接続数は最大20接続です ====
 +
 +ひとつの共有フォルダに接続できるセッション数という制限がありまして最大20接続となっています。
 +
 +{{.:pasted:20260126-035125.png?nolink}}
 +
 +これを「最大20人まで接続できる」という説明をするところがありますが、これ少し説明が必要でして。
 +
 +例えば、Aさんが別のPCからMiniPC共有フォルダShare01へ接続して、その中の写真画像を表示させながら説明用のテキストファイルの編集もしていたとしましょう。この時、Aさんが2接続占有した状態になります。\\ 
 +ここに、Bさんが別のPCからMiniPC共有フォルダShare01へ接続して、その中にある音楽のファイルを再生しながら同じ共有フォルダにある2つのPDFファイルを参照していたとしましょう。この時、Bさんが3接続占有した状態になります。
 +
 +AさんとBさんの2名が利用しているけど接続は5つ使われてしまいました。後から接続に来る人は残り15接続を分け合う必要があります。\\ 
 +つまり、1ユーザ1接続なら20人が接続できる、1ユーザ2接続なら10人が接続できる、1ユーザ5接続なら4人が接続できる……と言う事。
 +
 +利用者たちの間で20接続を共有する感じですね。
 +
 +宅内で使う場合、1台が5接続を利用するとして(根拠はないけど)、
 +  * WindowsPCからの接続で2台くらい(メイン機・サブ機)、2×5=10接続
 +  * ゲーム機やテレビからの接続(マルチメディア機能)の1~2台くらい、5~10接続
 +
 +と考えたら合計20接続に収まりそうだし困る事はそんなに無いんじゃないかな。
 +
 +
 +==== 大容量ストレージは避けた方が良い ====
 +
 +今だと22TBとか24TBとか、大容量なHDDも売られています。まぁ結構お高めです。\\ 
 +2026-01-16の時点で22TBのHDDは6万~13万円程します。
 +
 +それで、頑張って大容量を揃えるとですね、色々データを詰め込みたくなって実際詰め込んじゃう訳ですよ。……そしてストレージが壊れて失うものが大量に出てくる訳ですよ。\\ 
 +失わないためにバックアップを取りますが、例えば単純に22TBのHDDだと、バックアップ先も22TB以上が必要になる訳です。3世代のバックアップを取る場合、4台(主利用1台、バックアップ用3台)のHDDを揃えるだけで24万~45万円になる訳です。
 +
 +実際個人用途ではまだ22TBとか使わないでしょうから、4TB~8TBでそろえるのが良いかなと思います。
 +2026-01-16の時点で4TBのHDDは1.5万~2万円くらいです。4台揃えて8万円くらいです。ギリ現実的では?
 +
 +私は手元の余っているストレージで組んだのでHDDの代金はかかっておらず、費用はUSBハブ(交換用に2台)のお値段位でした。
 +
 +……いやね、実際にUSBハブ壊れて大慌てしたんです。時期的にウインドウズアップデートでSSDが破壊されちゃう云々が噂されてた時で「アチャー地雷踏んじまったかぁ?」と思ったらUSBハブがなんか変形しているのが目に入って…中の部品が膨れてケースが歪んでました。
 +
 +{{tag>Windows NAS ROBOCOPY タスクスケジューラ}}
documents/windows/nas/nas-001.txt · 最終更新: by k896951

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki