Saya memiliki beberapa direktori yang dipasang dari jarak jauh dari Debian Jessie, di Windows share, selama beberapa bulan.
Dalam beberapa minggu terakhir, saya terus mengalami keluhan terputusnya koneksi secara acak dari mountpoint, dan harus melakukan
sudo mount -a
untuk mendapatkan kembali konektivitas mount, beberapa kali (server digunakan sekali atau dua kali seminggu).
misalnya tunggangan tidak sering pulih setelah beberapa waktu tanpa digunakan.
Administrator Windows juga memberi tahu saya bahwa server Windows belum di-boot ulang untuk sementara waktu.
Hari ini, kebetulan saat melakukan mount -a
sekali lagi, ini hanya berhasil pada percobaan ke-2, sedangkan percobaan pertama memberikan kesalahan berikut:
sudo mount -a
mount error(104): Connection reset by peer
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(112): Host is down
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Direktori dipasang dari /etc/fstab
seperti:
//10.2.1.2/XX/ZZ/YY /mnt/mount_point cifs credentials=/root/.smbcredentials,iocharset=utf8,file_mode=0770,dir_mode=0770,uid=1001,gid=1001 0 0
Saat melakukan perintah mount, Anda juga dapat melihat opsi echo_interval
diaktifkan secara default pada 60 menit.
$mount
//10.2.1.2/XX/ZZ/YY on /mnt/mount_point type cifs (rw,relatime,vers=1.0,cache=strict,username=someusername,domain=XXX,uid=1001,forceuid,gid=1001,forcegid,addr=10.2.1.2,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,echo_interval=60,actimeo=1)
Apa yang harus dilakukan?
Jawaban yang Diterima:
Saya menemukan posting terkait yang menarik di sini folder yang dipasang cifs terus terputus (server ubuntu), berbicara tentang masalah yang sama (kesalahan yang sama, Samba berbagi).
Berita gembira yang relevan di sini, untuk mengikuti sisa jawaban, adalah bahwa pemasangan CIFS menggunakan protokol SMBv1.0 secara default, seperti yang dapat diverifikasi dengan mengeluarkan mount
perintah, dan perhatikan vers=1.0
lapangan.
$mount
//10.2.1.2/XX/ZZ/YY on /mnt/mount_point type cifs (rw,relatime,vers=1.0,cache=strict,username=someusername,domain=XXX,uid=1001,forceuid,gid=1001,forcegid,addr=10.2.1.2,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,echo_interval=60,actimeo=1)
Saya juga menemukan di Stack Overflow, posting Mount CIFS Host sedang down
Ini bisa juga karena ketidakcocokan protokol. Pada tahun 2017 Microsoft
menambal Server Windows dan menyarankan untuk menonaktifkan protokol SMB1.Mulai sekarang, mount.cifs mungkin memiliki masalah dengan negosiasi protokol.
Kesalahan yang ditampilkan adalah "Host sedang down." tetapi ketika Anda melakukan debug dengan:
smbclient -L <server_ip> -U <username> -d 256
Anda akan mendapatkan kesalahan:
protocol negotiation failed: NT_STATUS_CONNECTION_RESET
Posting tersebut menyebutkan bahwa patch Windows ke protokol/Wannacry dan lainnya, mengacaukan/atau lebih tepatnya, beberapa orang menonaktifkan fungsionalitas permintaan CIFS v1; masalah serupa telah terjadi di bagian depan Windows, dan, mengingat waktunya, itu membuat saya curiga masalahnya pasti terkait.
Kami belum menonaktifkan CIFS v1 di server khusus ini, AFAIK (dan pengujian mengonfirmasi hal ini), namun buletin MS menyarankan perilaku SMBv1 default (sedikit) berubah.
Saya akhirnya mengikuti ide umum yang disarankan dalam pertanyaan Samba yang disebutkan. Dari man mounts.cifs
:
vers=
Versi protokol UKM. Nilai yang diizinkan adalah:
1.0 – Protokol CIFS/SMBv1 klasik. Ini adalah default.
2.0 – Protokol SMBv2.002. Ini awalnya diperkenalkan di Windows Vista Service Pack 1, dan Windows Server 2008. Perhatikan bahwa
versi rilis awal Windows Vista menggunakan dialek yang sedikit berbeda (2.000) yang tidak didukung.2.1 – Protokol SMBv2.1 yang diperkenalkan di Microsoft Windows 7 dan Windows Server 2008R2.
3.0 – Protokol SMBv3.0 yang diperkenalkan di Microsoft Windows 8 dan Windows Server 2012.
Perhatikan juga bahwa meskipun opsi ini mengatur versi protokol yang digunakan, tidak semua fitur dari setiap versi tersedia.
--verbose
Cetak informasi debug tambahan untuk mount. Perhatikan bahwa parameter ini harus ditentukan sebelum
-o
. Misalnya:mount -t cifs //server/share /mnt --verbose -o user=username
Seperti yang terlihat pada manual, dalam versi Windows terbaru setelah Windows 8
menggunakan setidaknyavers=2.0
mungkin lebih masuk akal; sintaks alternatif di
baris perintah dengan--verbose
opsi yang disebutkan juga
berguna untuk men-debug lebih lanjut setiap komplikasi yang mungkin timbul.
Dengan demikian, karena server Windows tempat saya memasang barang dari pertanyaan ini adalah server Windows 2008 R2, saya memasukkan /etc/fstab
:
//10.2.1.2/XX/ZZ/YY /mnt/mount_point cifs credentials=/root/.smbcredentials,iocharset=utf8,file_mode=0770,dir_mode=0770,uid=1001,gid=1001,vers=2.1 0 0
Kemudian pasang kembali agar opsi diterapkan:
sudo mount -o remount /mnt/mount_point
Sekarang kami memverifikasi, dengan mount
sekali lagi, untuk mengonfirmasi protokol yang dinegosiasikan:
$mount
//10.2.1.2/XX/ZZ/YY on /mnt/mount_point type cifs (rw,relatime,vers=2.1,cache=strict,username=someusername,domain=XXX,uid=1001,forceuid,gid=1001,forcegid,addr=10.2.1.2,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,echo_interval=60,actimeo=1)
Dan kami memang dapat mengonfirmasi bahwa kami berhasil memodifikasi protokol SMB yang digunakan.
Perlu juga dicatat CIFS v1.0, selain usang, sangat tidak efisien dan tidak aman, dibandingkan dengan versi protokol yang lebih baru.
Dari blog MS – Berhenti menggunakan SMB1
SMB1 tidak modern atau efisien
Saat Anda menggunakan SMB1, Anda kehilangan
kinerja utama dan pengoptimalan produktivitas untuk pengguna akhir.
- Baca dan tulis yang lebih besar (2,02+) – penggunaan jaringan yang lebih cepat dengan lebih efisien
atau WAN dengan latensi lebih tinggi. Dukungan MTU yang besar.- Peer caching folder dan
properti file (2.02+) – klien menyimpan salinan lokal folder dan
file melalui BranchCache- Pegangan yang tahan lama (2.02, 2.1) – memungkinkan
koneksi terhubung kembali secara transparan ke server jika ada
pemutusan sementara- Model leasing oplock klien (2.02+) – membatasi
data yang ditransfer antara klien dan server, meningkatkan
kinerja pada jaringan latensi tinggi dan meningkatkan skalabilitas server SMB- Multichannel &SMB Direct (3.0+) – agregasi jaringan
bandwidth dan toleransi kesalahan jika beberapa jalur tersedia antara
klien dan server, ditambah penggunaan ultra-tinggi modern di seluruh RDMA
infrastruktur- Directory Leasing (3.0+) – Meningkatkan waktu respons
aplikasi di kantor cabang melalui caching
Cukup menarik, artikel terakhir ini menyarankan masalah pemutusan cenderung muncul setelah pemutusan (pegangan tahan lama) jika menggunakan protokol>=2.01, jadi saya akan menekankan lagi, untuk tidak terus menggunakan CIFS v1.0. (mis., saat berada di 1.0, echo_interval=60
tetap terhubung, jika ada gangguan jaringan, atau gangguan server lainnya, mount tidak akan pulih sendiri tanpa intervensi manual, saat menggunakan CIFS v1.0)
Sebagai saran terakhir, hindari melakukan sudo mount -a
, dan mulai lakukan:
sudo mount -o remount -a
Lihat pertanyaan saya juga CIFS memasang banyak salinan dari bagian yang sama pada titik pemasangan yang sama