sshfs এর চেয়ে একটি রিমোট ফাইল সিস্টেম মাউন্ট করার দ্রুত উপায়?


72

আমি দূরবর্তী অবস্থানের জন্য sshfs ব্যবহার করে যাচ্ছি তবে এটি সত্যিই ধীর এবং বিরক্তিকর, বিশেষত যখন আমি এতে গ্রহনটি ব্যবহার করি।

স্থানীয়ভাবে রিমোট ফাইল সিস্টেমটি মাউন্ট করার কোনও দ্রুত উপায় আছে? আমার নং 1 অগ্রাধিকার গতি।

রিমোট মেশিনটি ফেডোরা 15, স্থানীয় মেশিনটি উবুন্টু 10.10। প্রয়োজনে আমি স্থানীয়ভাবে উইন্ডোজ এক্সপিও ব্যবহার করতে পারি।

উত্তর:


14

sshfs এসএসএইচ ফাইল স্থানান্তর প্রোটোকল ব্যবহার করছে যার অর্থ এনক্রিপশন।

আপনি যদি কেবল এনএফএসের মাধ্যমে মাউন্ট করেন তবে এটি অবশ্যই দ্রুত, কারণ এনক্রিপ্ট করা হয়নি।

আপনি কি একই নেটওয়ার্কে ভলিউম মাউন্ট করার চেষ্টা করছেন ? তারপরে এনএফএস ব্যবহার করুন


35
এটি এনক্রিপশনের কারণে ধীর নয়, ধীর কারণ এটি FUSE এবং এটি ফাইল সিস্টেমের স্থিতি পরীক্ষা করে রাখে।
w00t

3
@ w00t আমি ভাবি না যে এটি ফুস এটিকে কমিয়ে দেয়, এনক্রিপশনটি নয়। আরকফোরের এনক্রিপশনটি পরিবর্তন করা আমার জন্য এটি বাড়িয়ে দিয়েছে, যেখানে ব্যবহার scpকরা ঠিক তত ধীর ছিল sshfs
স্পারহক

21
@ স্পারহাক থ্রুপুট এবং বিলম্বের মধ্যে পার্থক্য রয়েছে। FUSE আপনাকে বেশ উচ্চতর বিলম্ব দেয় কারণ এটি বেশ কিছু অক্ষম উপায় ব্যবহার করে ফাইল সিস্টেমের অবস্থা অনেকটাই পরীক্ষা করে দেখতে হয়। আরকফোর আপনাকে ভাল থ্রুপুট দেয় কারণ এনক্রিপশনটি সহজ। এক্ষেত্রে বিলম্বিতা সবচেয়ে গুরুত্বপূর্ণ কারণ এ কারণেই সম্পাদক ফাইলগুলির তালিকা তৈরি এবং লোড করতে ধীর হয়ে যায়।
w00t

3
@ w00t। আহ ঠিক আছে. ভাল দিক.
স্পারহাক

41

আপনার যদি sshfs সংযোগগুলির গতি উন্নত করতে হয় তবে এই বিকল্পগুলি ব্যবহার করে দেখুন:

oauto_cache,reconnect,defer_permissions,noappledouble,nolocalcaches,no_readahead

আদেশ হবে:

sshfs remote:/path/to/folder local -oauto_cache,reconnect,defer_permissions

1
ধন্যবাদ, আমার জন্য কাজ করেছেন! defer_permissionsযদিও অপসারণ করতে হয়েছিল (অজানা বিকল্প)।
ম্যাথিউ রডিক

4
প্রতিটি ক্রিয়াকলাপ জোর করে কর্মক্ষমতা nolocalcaches হ্রাস করবেন না ? এটি কি বিরোধিতা করে ? auto_cache
আর্থলেলন

2
নোলোক্যালক্যাচ এবং ডিফার_প্লেমিশনগুলি ডেবিয়ান জেসির পক্ষে বৈধ (আর?) বলে মনে হচ্ছে না।
কেউ

4
কেন no_readahead?
স্টাডিজিক

1
"ওআউট_ক্যাচে" বলতে কী বোঝ?
ম্যানুয়েলস্কিনিড 3 ই

18

ইতিমধ্যে সাম্বা / এনএফএস ব্যবহারের প্রস্তাবিত সমাধানগুলি ছাড়াও, যা পুরোপুরি বৈধ, আপনি sshfsদ্রুত এনক্রিপশন ব্যবহার করে কিছু গতি বাড়াতেও অর্জন করতে পারেন (প্রমাণীকরণ যথারীতি নিরাপদ হবে, তবে স্থানান্তরিত ডেটা নিজেই ডিক্রিপ্ট করা সহজ হবে) -o Ciphers=arcfourবিকল্প সরবরাহ করে to sshfs। এটি বিশেষত কার্যকর যদি আপনার মেশিনে সিপিইউ দুর্বল থাকে।


-oCipher=arcfourএলোমেলো ডেটা থেকে তৈরি করা 141 এমবি ফাইলের সাথে আমার পরীক্ষায় কোনও পার্থক্য নেই।
স্পারহাক

6
এটি কারণ কমান্ডে একাধিক টাইপো ছিল। আমি এটি সম্পাদনা করেছি। আমি আমার রাস্পবেরি পাই সার্ভার থেকে একটি 15% স্পিডআপ লক্ষ্য করেছি। (+1)
স্পারহাক

4
Chacha20-poly1305@openssh.com সাইফার এখন বিবেচনার জন্য একটি বিকল্প যা এখন আরকফোর অপ্রচলিত। এএসএসের চেয়ে চাচার20 এআরএম প্রসেসরগুলিতে দ্রুত তবে এএসএস নির্দেশাবলীর সাথে x86 প্রসেসরের তুলনায় আরও খারাপ (যা বর্তমানে সমস্ত আধুনিক ডেস্কটপ সিপিইউতে স্ট্যান্ডার্ড হিসাবে রয়েছে)। klingt.net/blog/ssh-cipher-performance-comparision আপনি সমর্থিত সাইফারগুলিকে "ssh -Q সিফার" দিয়ে তালিকাভুক্ত করতে পারেন
টিএমএসসি

11

আমার কাছে সুপারিশ করার কোনও বিকল্প নেই, তবে এসএসএফএস কীভাবে গতি বাড়ানো যায় তার জন্য পরামর্শগুলি সরবরাহ করতে পারি:

sshfs -o cache_timeout=115200 -o attr_timeout=115200 ...

আপনি যখন আপনার সেশনে ইতিমধ্যে পুনরুদ্ধার করা ফাইলগুলির জন্য সামগ্রী বা অনুমতিগুলি পড়ার চেষ্টা করছেন তখন এটি রাউন্ড ট্রিপের অনুরোধগুলি এড়ানো উচিত।

sshfs স্থানীয়ভাবে মুছে ফেলা এবং পরিবর্তনগুলি সিমুলেট করে, তাই ক্যাশেড ডেটা স্বয়ংক্রিয়ভাবে বাদ দেওয়া হওয়ায় স্থানীয় মেশিনে নতুন পরিবর্তনগুলি তত্ক্ষণাত উপস্থিত হওয়া উচিত।

স্থানীয় মেশিন না জেনে যেমন দূরবর্তী ফাইলগুলি আপডেট করা হতে পারে তবে এই বিকল্পগুলির প্রস্তাব দেওয়া হয় না , যেমন কোনও পৃথক ব্যবহারকারী, বা একটি দূরবর্তী এসএসএস শেল। সেক্ষেত্রে লোড টাইমআউটগুলি পছন্দনীয় হবে।

এখানে আমি আরও কয়েকটি বিকল্প পরীক্ষা করে দেখলাম, যদিও আমি নিশ্চিত নই যে এগুলির মধ্যে কোনওরকম পার্থক্য হয়েছে কিনা:

sshfs_opts="-o auto_cache -o cache_timeout=115200 -o attr_timeout=115200   \
-o entry_timeout=1200 -o max_readahead=90000 -o large_read -o big_writes   \
-o no_remote_lock"

আপনি তার উত্তরে মেটাইয়ের দ্বারা প্রস্তাবিত বিকল্পগুলিও পরীক্ষা করে দেখুন ।

recursion

আমার ওয়ার্কফ্লোতে সবচেয়ে বড় সমস্যাটি হ'ল আমি যখন অনেকগুলি ফোল্ডার পড়ার চেষ্টা করি, উদাহরণস্বরূপ একটি গভীর গাছে, কারণ sshfs প্রতিটি ফোল্ডারের জন্য আলাদাভাবে একটি বৃত্তাকার ট্রিপ অনুরোধ সম্পাদন করে। এটি আপনার গ্রহণের ক্ষেত্রে বাধা হয়ে দাঁড়াতে পারে experience

সমান্তরালভাবে একাধিক ফোল্ডারগুলির জন্য অনুরোধ করা এটির সাথে সহায়তা করতে পারে তবে বেশিরভাগ অ্যাপ্লিকেশন সেগুলি করে না: সেগুলি রিড-ফরোয়ার্ড ক্যাচিং সহ কম-ল্যাটেন্সি ফাইল সিস্টেমগুলির জন্য ডিজাইন করা হয়েছিল, সুতরাং তারা পরবর্তী ফাইলটিতে যাওয়ার আগে একটি ফাইল স্ট্যাট সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে ।

Precaching

তবে sshfs যা কিছু করতে পারে তা হ'ল দূরবর্তী ফাইল সিস্টেমে সামনের দিকে নজর দেওয়া , আমার অনুরোধ করার আগে ফোল্ডার স্ট্যাটাস সংগ্রহ করা এবং সংযোগটি অবিলম্বে দখল করা না হলে সেগুলি আমার কাছে প্রেরণ করুন। এটি আরও ব্যান্ডউইথ ব্যবহার করবে (লুকোহেড ডেটা থেকে যা কখনও ব্যবহৃত হয় না) তবে গতি উন্নত করতে পারে।

আমরা sshfs কে আপনার কাজটি শুরু করার আগে চালিয়ে বা পটভূমিতে যখন আপনার কাজটি ইতিমধ্যে চলছে তখন কিছু রিড-ফরোয়ার্ড ক্যাচিং করতে বাধ্য করতে পারি:

find project/folder/on/mounted/fs > /dev/null &

এটি সমস্ত ডিরেক্টরি এন্ট্রিগুলিকে প্রাক-ক্যাশে করা উচিত, রাউন্ড ট্রিপগুলি থেকে পরবর্তী ওভারহেডের কিছু হ্রাস করে। (অবশ্যই, আপনার আগে যেমন সরবরাহ করেছি তার মতো আপনাকে বৃহত্তর সময়সীমা ব্যবহার করতে হবে, বা আপনার অ্যাপ্লিকেশনটি অ্যাক্সেস করার আগে এই ক্যাশেড ডেটা সাফ করা হবে))

তবে এটি findএকটি দীর্ঘ সময় নিতে হবে। অন্যান্য অ্যাপ্লিকেশনগুলির মতো, এটি পরেরটির অনুরোধ করার আগে একটি ফোল্ডার থেকে ফলাফলের জন্য অপেক্ষা করে।

বিভিন্ন ফোল্ডারে সন্ধানের জন্য একাধিক অনুসন্ধান প্রক্রিয়া জিজ্ঞাসা করে সামগ্রিক সময় হ্রাস করা সম্ভব। এটি সত্যিই আরও দক্ষ কিনা তা দেখার জন্য আমি পরীক্ষা করে দেখিনি। এটি নির্ভর করে যে sshfs সমান্তরালে অনুরোধগুলি অনুমোদন করে। (আমি মনে করি এটি হয়।)

find project/folder/on/mounted/fs/A > /dev/null &
find project/folder/on/mounted/fs/B > /dev/null &
find project/folder/on/mounted/fs/C > /dev/null &

আপনি যদি ফাইল সামগ্রীগুলি প্রি-ক্যাশে করতে চান তবে আপনি এটি চেষ্টা করতে পারেন:

tar c project/folder/on/mounted/fs > /dev/null &

স্পষ্টতই এটি আরও বেশি সময় নিবে, প্রচুর ডেটা স্থানান্তর করবে এবং আপনার বিশাল আকারের ক্যাশে আকারের প্রয়োজন requires তবে এটি শেষ হয়ে গেলে, ফাইলগুলিতে অ্যাক্সেস করা খুব সুন্দর এবং দ্রুত বোধ করা উচিত।


4

এসএসএইচএফস সত্যিই ধীর কারণ এটি ফাইলের সামগ্রীগুলি স্থানান্তর করে না যদিও এটি (সিপি করার সময়) না করে। আমি এটি উজান এবং দেবিয়ানকে জানিয়েছি, কিন্তু কোনও প্রতিক্রিয়া নেই: /


2
এটি সঙ্গে দক্ষ mv। দুর্ভাগ্যক্রমে আপনি যখন cpস্থানীয়ভাবে চালান , FUSE কেবল পড়তে এবং লেখার জন্য ফাইলগুলি খোলার জন্য অনুরোধগুলি দেখে। আপনি যে কোনও ফাইলের একটি অনুলিপি তৈরি করছেন তা জানেন না। FUSE এ এটি কোনও সাধারণ ফাইল লেখার চেয়ে আলাদা বলে মনে হচ্ছে না। সুতরাং আমি আশঙ্কা করি যদি স্থানীয়দের cpআরও FUSE- সচেতন / FUSE- বান্ধব না করা হয় তবে এটি স্থির করা যাবে না । (অথবা আরএসসিএন-এর cpমতো সন্দেহজনকভাবে ফুস যখন পুরো ব্লকের পরিবর্তে ব্লক হ্যাশ পাঠাতে সক্ষম হতে পারে তবে এটি জটিল হবে এবং অন্যান্য ক্রিয়াকলাপকে কমিয়ে দিতে পারে।)
জোয়েটউইডল

3

অনুসন্ধান এবং বিচারের পরে। আমি সবেমাত্র -o Compression=noএটির প্রচুর গতি পেয়েছি । দেরিটি সংকোচন এবং সঙ্কোচনের প্রক্রিয়া দ্বারা সৃষ্ট হতে পারে। তদতিরিক্ত, 'সিফারস = aes128-ctr' ব্যবহার অন্যদের চেয়ে দ্রুত বলে মনে হচ্ছে যখন কিছু পোস্ট এটির উপর কিছু পরীক্ষা-নিরীক্ষা করেছে। তারপরে, আমার আদেশটি কোনওভাবে এরকম:

sshfs -o অনুমতি_অর, ট্রান্সফর্ম_সাইক্লিংকগুলি, ফলো_সাইমলিংকস, আইডেন্টিটি ফাইল = / ব্যবহারকারী / ম্যাপেল / .ssh / id_rsa -O অটো_ক্যাচ, পুনরায় সংযোগ, ডিফার_পার্মিকেশন -o সাইফারস = aes128-ctr -o সংক্ষিপ্তকরণ = কোনও ম্যাপেল নয়_123.123.123.123: / হোম / ম্যাপল ~ / mntpoint


2

এনএফএস দ্রুত হওয়া উচিত। ফাইল সিস্টেম কত দূরবর্তী? যদি এটি WAN এর ওপরে থাকে তবে সরাসরি দূরবর্তী অ্যাক্সেসের বিরোধী হিসাবে আপনি কেবল ফাইলগুলি সামনে এবং পিছনে সিঙ্ক করার চেয়ে ভাল।


1

আপনার বড় ফাইল থাকলে এনএফএস বা সাম্বা হয়। 720 পি মুভি এবং ক্র্যাপের মতো কিছু দিয়ে এনএফএস ব্যবহার করা সত্যিই পিআইটিএ। সাম্বা আরও ভাল কাজ করবে, আমি অন্যান্য বেশ কয়েকটি কারণে সাম্বাকে অপছন্দ করি এবং আমি সাধারণত এটি সুপারিশ করতাম না।

ছোট ফাইলগুলির জন্য, এনএফএস ঠিক থাকতে হবে।


1

আমি আমার zsh থিমটি বন্ধ করে দেখতে পেয়েছি যা গিট ফাইলের স্থিতি যাচাই করছিল তা ব্যাপকভাবে সহায়তা করেছিল - কেবল ডিরেক্টরিতে প্রবেশ করাতে 10+ মিনিট সময় লাগছিল। তেমনি ভিমে গিট স্ট্যাটাস চেকার বন্ধ করা।


বাহ, এটি সত্যিই একটি ভাল টিপ!
দিমিত্রি

-2

রুট হিসাবে লগইন করুন।

"সিডি /" ব্যবহার করে আপনার শীর্ষ স্তরের ডিরেক্টরিটি অ্যাক্সেস করুন।

তারপরে নিশ্চিত হয়ে নিন যে আপনার একটি মাউন্ট ফোল্ডার তৈরি হয়েছে বা "mkdir ফোল্ডার_নাম" ব্যবহার করে একটি তৈরি করুন।

এর পরে, কেবল "মাউন্ট এক্সএক্সএক্সএক্সএক্স: / রিমোট_মাউন্ট_ডাইরেক্টরি / লোকাল_মাউন্ট_ডাইরেক্টরি" ব্যবহার করুন।

যদি সবকিছু আপনার শেষের দিকে কাজ করে, এর আগে আপনার একটি সফল মাউন্ট হওয়া উচিত। আপনি যাচাই করতে সক্ষম হবার গ্যারান্টি দেওয়ার জন্য "এক্সপোর্টএফ" কমান্ড ব্যবহার করে গন্তব্য ডিরেক্টরিটি ভাগ করে নেওয়ার বিষয়টি নিশ্চিত করতে এবং নিশ্চিত করতে পারেন।

আশাকরি এটা সাহায্য করবে. এটি কোনও প্রেমের পরিবেশের নয়, এটি ভিএমওয়্যার এবং ফেডোরা 16 ব্যবহার করে ল্যানে পরীক্ষা করা হয়েছে।


5
এটি প্রশ্নের উত্তর দেয় না ...
লও লাম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.