এক্সট 4 এবং এক্সএফএসে আসলে কোন ফাইল সিস্টেমের মেটাডেটা অপারেশনগুলি ভ্রমণ করা হয়?


9

Ext2 & xfs ফাইল সিস্টেম জার্নালে কোন ফাইল সিস্টেমের মেটাডেটা অপারেশনগুলি আসলেই জোর দেওয়া আছে তার কোনও সহজ, সরল উত্তর আমি খুঁজে পাচ্ছি না। নোট করুন যে আমি পসিক্সকে "পারমাণবিক" হিসাবে ঘোষিত সম্পর্কে জিজ্ঞাসাবাদ করছি না । আমি আরও বেশি উদ্বিগ্ন যে পারমাণবিক ফাইল সিস্টেম অপারেশনগুলির সাবসেটটি পিছনে এবং সমস্ত সময় পিছনে বাঁকানো ছাড়াই সক্ষম জার্নালটি চালানোর কারণে কার্যকরভাবে টেকসই হয় fsync(2)

অপারেশন আমি মোটামুটি নির্দিষ্ট গণনা:

  • creat(2)
  • link(2)
  • unlink(2)
  • rename(2)
  • mkdir(2)
  • rmdir(2)

অপারেশনগুলি সম্পর্কে আমি পুরোপুরি নিশ্চিত নই:

  • symlink(2)

symlink(2)কেনার ক্ষেত্রে দেখা যায় সবচেয়ে কষ্ট যেহেতু কোনো সহজবোধ্য উপায় হতে বলে মনে হচ্ছে না fsync(2)বা fdatasync(2)অন্তর্নিহিত datablocks করে একটি সিমবলিক লিঙ্ক বিষয়বস্তু সংরক্ষণ করি। জার্নালটি আমার জন্য এটি যত্ন করে তা জেনে স্বস্তি হবে।

উত্তর:


1

পারফরম্যান্সের কারণে, ext4 ডিফল্টরূপে কেবল জার্নালের মাধ্যমে ফাইল সিস্টেম মেটাডেটা লিখে writes

আমি বিশ্বাস করি যে এক্সএফএস সমস্ত মেটাডেটা লেনদেন জার্নাল করে, যদি না আপনি ফাইল সিস্টেমটি টুইট করেন।


হ্যাঁ তবে বিশেষত "মেটাডেটা" কী? একটি ডিরেক্টরি ব্লক: নিশ্চিত। ইনোডগুলি নিজেরাই: হ্যাঁ। একটি টার্গেট সহ সিমলিংকগুলি ইনোডের মধ্যেই খাপ খায়: সম্ভবত? লক্ষ্যগুলি সহায়ক ব্লকগুলিতে ছড়িয়ে পড়ে এমন চিহ্নগুলি: ??????

লিংক সাহায্য করবে
asdmin

1

আমি আরও বেশি উদ্বিগ্ন যে পারমাণবিক ফাইল সিস্টেম অপারেশনগুলির সাবসেটটি কার্যকরভাবে একটি জার্নালটি চালিয়ে যাওয়ার কারণে কার্যকরভাবে টেকসই হয় যা পুরো সময় পিছনে এবং বিস্মরণ না করেই চলবে (2)।

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


আমি জানি যে আমি যদি যত্ন করি তবে অবশ্যই ব্লকগুলি স্পিনিং মরিচায় আঘাত করেছে কিনা তা নিশ্চিত করেই ফাইল এবং ডিরেক্টরিগুলি সন্ধান করতে হবে, তবে এমন কোনও পদ্ধতি নেই যা আমি সন্ধান করতে সক্ষম হয়েছি যে এটি একটি সিমিলেঙ্ক ব্যাক করে দেয় যদি এটি বাইরে বেরিয়ে যায় তবে ইনোড এই মুহুর্তে আমার একমাত্র অবলম্বন হ'ল জার্নালের উপর নির্ভর করা বা গুরুত্বপূর্ণ যে কোনও বিষয়তে কখনও কখনও সিমলিংক ব্যবহার করা উচিত নয়।
rboyer

@ নাইলিন, একটি ফাইন্যান্স () একটি দ্রুত নন সিএমলিংক সহ কোনও ফাইল সম্পর্কিত সমস্ত ব্লক ফ্লাশ করবে।
psusi

1
আমি কীভাবে একটি ফাইএনসিএনসি ব্যবহারের জন্য উপযুক্ত ফাইল বর্ণনাকারী খুলি যা একটি নন-ফাস্ট সিমলিংকের ব্লকগুলি ফ্লাশ করবে?
rboyer

@ নাইলিন, ওহ হ্যাঁ ... ভাল পয়েন্ট ... লিনাক্স-এসডেভেল মেলিং তালিকার সেইটির বিষয়ে জিজ্ঞাসা করার প্রয়োজন হতে পারে ... হার্ড লিঙ্কগুলির সাথে আমি বিশ্বাস করি যে আপনি এটি যুক্ত ডিরেক্টরিটি খোলেন এবং সিঙ্ক করুন, সম্ভবত সিমলিঙ্কগুলি একই কাজ করে?
psusi

0

আপনি অবগত আছেন যে এক্সট 4 জার্নালটি ব্লক নম্বর দ্বারা পরিচালিত হয় এবং অপারেশন নয়, সঠিক? "মেটাডেটা" প্রদত্ত ইনোডের জন্য প্রকৃত ডেটা ব্লক ব্যতীত অন্য কিছু হতে পারে, আপনি প্রশ্নে ব্লকটি কীভাবে সংশোধন করতে ব্যবহার করেছেন তা নির্বিশেষে।


0

xfstests মনে হচ্ছে, () যে fsync দাবি করতে একটি ডিরেক্টরি কোন symlinks এটা রয়েছে জিদ করা উচিত নয়।

আমি এটি যাচাই করিনি। এটা সম্ভব যে আমি কিছু মিস করেছি।

লিনাক্স ফাইল সিস্টেমের অনেক বিকাশকারী xfstests ব্যবহার করেন। এই পরীক্ষাটি "জেনেরিক" ডিরেক্টরিতে রয়েছে। এটি বোঝায় যে এটি সমস্ত লিনাক্স ফাইল সিস্টেমে প্রয়োগ করা উচিত। (বা কমপক্ষে, সমস্ত ব্লক ডিভাইস ফাইল সিস্টেমগুলি The পরীক্ষাটি একটি বিশেষ ভার্চুয়াল ব্লক ডিভাইস ব্যবহার করে কাজ করে)।

https://github.com/kdave/xfstests/blob/master/tests/generic/348

# Test creating a symlink, fsync its parent directory, power fail and mount
# again the filesystem. After these steps the symlink should exist and its
# content must match what we specified when we created it (must not be empty
# or point to something else).
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.