স্বচ্ছভাবে বিভক্ত ফাইল | অংশটি ফাইল করার জন্য হার্ডলিঙ্ক


0

আমার কাছে সত্যিই বড় ফাইল আছে (ট্রুক্রিপট কনটেইনার) এবং আমি এটি কিছু মেঘে সংরক্ষণ করতে চাই, তবে এটির ফাইলের আকারের প্রতিবন্ধকতা রয়েছে, 2 গিগাবাইটের মধ্যে সীমাবদ্ধ, এছাড়াও এটি ডিরেক্টরি সিঙ্ক করার জন্য কিছু সরঞ্জাম রয়েছে। ধারণাটি হ'ল কয়েকটি ডিরেক্টরিতে অংশগুলি ফাইল করার জন্য হার্ডলিঙ্কগুলি তৈরি করা হবে, যা সিঙ্ক হবে।

উদাহরণস্বরূপ: আমরা ফাইল আছে একটি 4 কিলোবাইট আকারের সাথে; ফাইল বি প্রথম 1KB অংশ পয়েন্ট একটি ফাইল সি দ্বিতীয় 1KB অংশ পয়েন্ট একটি ফাইল ডি তৃতীয় 1KB অংশ পয়েন্ট একটি ফাইল, শেষ 1KB অংশ পয়েন্ট একটি

সুতরাং প্রশ্নগুলি হ'ল:

  1. এটা কি সম্ভব?
  2. সম্ভাব্য বিকল্পগুলি কী কী?
  3. যদি এটি একেবারেই সম্ভব না হয় তবে আমার ট্রুক্রিপট অ্যানালগ দরকার যা বিভক্ত পাত্রে অনুমতি দেয় এবং ট্রুক্রিপ্টের সমস্ত বৈশিষ্ট্য প্রয়োগ করে ।

সীমাবদ্ধতাসমূহ:

  • ওএস: জেন্টু লিনাক্স
  • মোট আকার বৃদ্ধির অনুমতি নেই
  • মূল ফাইল অপসারণ অনুমোদিত নয়
  • FS: Ext4 | ReiserFS

আপনি কী স্টোরেজ ব্যবহার করতে পারবেন তা উল্লেখ করতে ভুলে গেছেন।
দিমিত্রি গ্রিগরিয়েভ

@DmitryGrigoryev আমি ভুলে না, আমি ইচ্ছাকৃতভাবে এই তথ্য ommited করেছি, কারণ প্রায় কোন এক তা জানেন (কিন্তু আপনাকে যা করতে: cloud.mail.ru)
শ্রীমতি

@ এসএমটি আপনি কি নিজের সমস্যার সমাধান খুঁজে পেয়েছেন?
স্লিজারড

উত্তর:


0

আপনি লুপের মাধ্যমে স্বচ্ছভাবে ফাইলের বিভিন্ন অংশে অ্যাক্সেস করতে পারেন। নীচে একটি স্ক্রিপ্ট যা আপনার উদাহরণ সেটআপ প্রয়োগ করে:

dd if=/dev/zero of=A count=8
losetup --offset 0    --sizelimit 1024 /dev/loop0 A
losetup --offset 1024 --sizelimit 1024 /dev/loop1 A
losetup --offset 2048 --sizelimit 1024 /dev/loop2 A
losetup --offset 3072 --sizelimit 1024 /dev/loop3 A

ফলস্বরূপ, প্রারম্ভিক ফাইলের অংশগুলি ফাইলের Aমাধ্যমে অ্যাক্সেসযোগ্য /dev/loopX: আপনি যা কিছু লিখেন Aতা থেকে /dev/loopXবিপরীতে পড়া যায় । আমি নিশ্চিত নই যে আপনার ক্লাউড ক্লায়েন্ট যদিও বিশেষ ফাইলগুলির সাথে কাজ করবে।


সমাধানের জন্য ধন্যবাদ, তবে আমি মনে করি আমি 20 জিবি ফাইলের সাহায্যে লুপ ডিভাইসগুলি শেষ করব, বা আমি ভুল করছি? ( ls -l /dev | grep -P "loop[0-9]+" | wc -lফলাফলগুলিতে 8)
শ্রীমতী

আপনার যদি লোডযোগ্য মডিউল হিসাবে লুপ ড্রাইভার থাকে /etc/modules.confতবে নিম্নলিখিত লাইনটি সম্পাদনা করুন এবং যুক্ত করুন: options loop max_loop=20এবং পুনরায় বুট করুন। অন্যথায় আপনাকে আরও লুপ ডিভাইস সমর্থন করতে আপনার কার্নেলটি পুনর্নির্মাণ করতে হবে।
দিমিত্রি গ্রিগরিয়েভ

ঠিক আছে, তারপরে আরও কিছু বোকা প্রশ্ন রয়েছে: লুপ ডিভাইসের সর্বাধিক গণনা কী এবং তারা র‌্যাম এবং সিপিইউতে কীভাবে প্রভাব ফেলবে? (উত্স ধারণাটি 20 গিগাবাইট ধারক সহ 10 এমবি ফাইল অংশগুলি ব্যবহার করা ছিল, এখন কোন আকারটি চয়ন করতে হবে তা আমি জানি না)
শ্রীমতী

লুপ ডিভাইস /dev/loopXঅন্তর্নিহিত ফাইলটিতে কল পড়ার / লেখার জন্য সমস্ত আগত পাঠ্য / লিখিত কলগুলি কেবল অনুবাদ করে, তাই এটি খুব বেশি র‍্যাম নেয় না। 2000 লুপ স্ট্রাকচার + 2000 ফাইল হ্যান্ডলগুলি + 2000 ব্লক ডিভাইস তৈরি করা বেশিরভাগ দশক এমবি ব্যবহার করবে। তবে আপনার এত দরকার কেন?
দিমিত্রি গ্রিগরিয়েভ

আপনি অন্য পথেও যেতে পারেন, বেশ কয়েকটি নিয়মিত ফাইল ব্যবহার করতে পারেন, লুপ ডিভাইস হিসাবে এগুলি মাউন্ট করতে পারেন এবং তারপরে বিটিআরএফস বা এলভিএম (আমার উত্তরের অনুরূপ) ব্যবহার করে এই লুপ ডিভাইসগুলি একত্রিত করতে পারেন। তারপরে আপনার ক্লাউড পরিষেবাটিতে কেবল নিয়মিত ফাইলগুলিই মোকাবেলা করতে হবে।
স্লিজারড

0

কিছু যে, এছাড়াও সঙ্গে নিশ্চিত ZFS সাথে কাজ করে সম্ভবত lvm, btrfsএবং অন্যান্য ভলিউম ম্যানেজার:

আপনি কয়েকটি খালি ফাইল (এর সাথে তৈরি dd if=/dev/zero of=file01 bs=1M count=2000) ব্যবহার করতে পারেন এবং তারপরে একটি RAID0 (স্ট্রাইপিং) গঠনের জন্য এই ফাইলগুলিকে আপনার ভলিউম ম্যানেজারে "হার্ড ডিস্ক" হিসাবে ব্যবহার করতে পারেন।

btrfsএবং এর জন্য lvmআপনাকে আপনার ফাইলগুলি লুপ ডিভাইস হিসাবে মাউন্ট করতে হবে (অন্যান্য উত্তর দেখুন)।

তারপরে ভলিউম ম্যানেজার আপনাকে এই ফাইলগুলি একটি বড় হার্ড ডিস্ক হিসাবে উপস্থাপন করবে। আপনি এই নতুন ফাইল সিস্টেমের মধ্যে আপনার ট্রুইক্রিপ্ট কনটেইনার রাখতে পারেন।

এখানে চিত্র বর্ণনা লিখুন

এলভিএম ব্যবহারের জন্য, এখানে একটি টিউটোরিয়াল রয়েছে: https://www.debian-administration.org/article/410/A_simple_intrration_to_working_with_LVM

বিটিআরএসএফ-এর জন্য এটি সম্ভবত mkfs.btrfs -d raid0 file1 file2 file3 দেখার মতো একটি কমান্ড হবে : https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_ মাল্টিপল_ডেভেসিগুলি # ফাইলসাইটি_ক্রিকেশন

যেহেতু আপনি জেন্টু ব্যবহার করছেন, আপনার জেডএফএসসনলিনাক্স ব্যবহার করতে হবে (কার্নেল মডিউল, FUSE বাস্তবায়ন ব্যবহার করবেন না!)। এটি নিম্নলিখিত হিসাবে করা যেতে পারে:

# create 10 files of 1GB each
for i in {0..9} ; do
    dd bs=1M count=1000 if=/dev/zero of=part_${i}
done

# create a zpool (sth like a virtual harddrive) from the 10 files
zpool create MyPoolName /absolute/path/to/part_*

# this will also create a new file system, that is mounted at /MyPoolName
# can be seen with
df -h

# Now, you can put your Truecrypt container in there. If you want to upload/download the files, you should "export" the zpool first.
zpool export MyPoolName

# If all the synchronization is done, you can import the pool with
zpool import MyPoolName -d /absolute/path/to/folder/that/contains/parts

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


আমি কখনই lvm ব্যবহার করি নি, তাহলে এটি কীভাবে করা যায়? ( man lvmসাহায্য করেনি)
শ্রীমতি

আমিও কখনও ব্যবহার করিনি lvm। আমি পরিবর্তে জেডএফএসনলিনাক্স ব্যবহার করি (যা সত্যই ভাল কাজ করে) এবং আরও কিছু ধারণা দেওয়ার জন্য উত্তরটি আপডেট করেছি। এছাড়াও, wiki.archlinux.org/index.php/ZFS
স্লাইজার্ড

ঠিক আছে, lvmলুপ ডিভাইসগুলি ব্যবহার করে আপনার ফাইলগুলি মাউন্ট করা হলে এটি কেবলমাত্র কাজ করে বলে মনে হচ্ছে । একই জন্য যায় btrfs। সুতরাং আপনি যদি জেডএফএস ব্যবহার করতে না চান তবে এই উত্তরটি @ ডিমিট্রিগ্রিরিভের উত্তরের সাথে একত্রিত করুন।
স্লাইজার্ড

অনেকগুলি ছোট ফাইল ব্যবহারের কারণ হ'ল মেঘ ফাইলগুলি পার্টিয়েলি সিঙ্ক করতে পারে না (যেমনটি আমি জানি [হ্যাঁ, এটি আসলে ভাল মেঘ নয় তবে আমাকে 1 টিবি দিয়েছে, যা আমি ব্যবহার করতে চাই :)]), এবং আপলোড করা কমপক্ষে অদ্ভুত পাত্রে কোনও পরিবর্তন হওয়ার পরে 2 জিবি।
শ্রীমতি

তাহলে কীভাবে জেডএফএসকে লুপ ডিভাইসগুলির সাথে> 512 এমবি অংশগুলি সংযুক্ত করতে?
শ্রীমতি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.