আপনি কীভাবে একটি বৃহত পরিবেশে ফ্রিবিএসডি এর বন্দর পরিচালনা ও মোতায়েন করবেন?


19

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

আমি নীচে জিনিস সেট আপ করেছি:

  • / ইউএসআর / পোর্টগুলি একটি নোড থেকে এনএফএসের মাধ্যমে ভাগ করা হয় (রাতের 'পোর্টসনেপ আনতে আপডেট')।
  • প্রতিটি নোড মাউন্ট / ইউএসআর / পোর্ট-পঠন সহ পোর্ট করে
  • আমি সমস্ত নোডে /etc/make.conf এ "WRKDIRPREFIX = / usr / tmp" সেট করেছি
  • আমি পোর্টসনেপকে /usr/local/etc/pkgtools.conf এ নিম্নলিখিত যোগ করে একটি স্থানীয় সূচক ব্যবহার করতে কনফিগার করেছি:

ENV['LOCALINDICES'] ||= '/var/db'

ENV['PORTS_INDEX'] ||= ENV['LOCALINDICES'] + '/INDEX.local'

আমি portupgrade -p packageএকটি প্যাকেজ তৈরি করতে এবং তারপরে portupgrade -P packageঅন্যান্য নোডগুলিতে বাইনারি ইনস্টল করতে সফলভাবে চালাতে পারি ।

তবুও, একসময় আমি নিম্নলিখিত সমস্যাটি পেয়েছি: /var/db/INDEX.local:23265:dbm_store failed

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


একটি বিকল্প হ'ল প্রতিটি নোডে একটি সম্পূর্ণ স্থানীয় পোর্ট-ট্রি (এবং সম্ভবত কেবল 'ডিসফিলস' এবং 'প্যাকেজগুলি' মাউন্ট করুন), তবে এটি বিশাল স্থানের অপচয় হিসাবে (এবং অনেক অপ্রয়োজনীয় আপডেটের উল্লেখ না করার জন্য) বোধ করে।
ভিপিটারসন

ভিপিটারসন: এটি এমন একটি প্রশ্ন যা জিজ্ঞাসা করা দরকার (আমি এই মুহুর্তে অবরুদ্ধ। এবং +5 ভোট এবং 3 তারা পরামর্শ দেয় যে আমরা একা নই)। সম্ভবত এই প্রশ্নটি পরিষ্কার করুন এবং আপনি সমাধান করার চেষ্টা করছেন এমন নির্দিষ্ট কিছু সমস্যা বর্ণনা করুন। (এফডাব্লুআইডাব্লু, কেউ আপনার প্রশ্নটি বন্ধ করার পক্ষে ভোট দিয়েছে Pers ব্যক্তিগতভাবে আমি খুব এটি দেখতে চাই, বা অনুরূপ, প্রশ্নটি সংরক্ষণ করা হয়েছে)।
স্টিফান লাসিউস্কি

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

উত্তর:


13

বৃহত পরিবেশে পোর্ট সিস্টেমের সাথে আমি কখনই পুরোপুরি সন্তুষ্ট হইনি - সর্বদা মনে হয় এটিকে ভালভাবে চালিত করার জন্য আপনাকে এটিতে কিছু বাহ্যিক পরিচালনা প্রয়োগ করা দরকার।

আমার সেরা টিপস (আরোহণের পছন্দ অনুসারে, "সেরা" সমাধানের "সবচেয়ে খারাপ" সমাধান):


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


একটি বিল্ড হোস্ট ব্যবহার করুন, প্যাকেজ তৈরি করুন এবং সেগুলি ইনস্টল করুন।
প্রতিটি পৃথক মেশিনে বিল্ডিংয়ের চেয়ে আরও ভাল সমাধান: প্যাকেজ তৈরি করতে একটি বিল্ড হোস্ট ব্যবহার করুন এবং সেই প্যাকেজগুলিতে আপনার সরঞ্জামগুলি নির্দেশ করুন।
এর অর্থ আপনি চালিত প্রতিটি আর্কিটেকচারের জন্য একটি বিল্ড হোস্টকে রাখা (বা ক্রস-সংকলন), তবে এটি শেষ পর্যন্ত আপনার টার্গেট মেশিনগুলির জন্য ভাল নয় (কোনও বৃহত সংকলন কাজ নয়, ধারাবাহিকতার গ্যারান্টি)


একটি কনফিগারেশন / সিস্টেম পরিচালনা সরঞ্জাম ব্যবহার করুন।
এটিই আমি সমাধান করেছিলাম - আমি একটি স্ট্যান্ডার্ড সার্ভার চিত্র তৈরি করি এবং এটি ব্যবহার করে আমার পরিবেশের চারপাশে স্থাপন করি radmind। আপনি পুতুল বা শেফের সাথে একই জিনিস করতে পারেন । এটিতে বিল্ড হোস্ট ব্যবহারের সমস্ত সুবিধা রয়েছে (স্বতন্ত্র সার্ভারগুলিতে সামঞ্জস্য, কম লোড), এবং কনফিগারেশন পরিচালনার সুবিধা যুক্ত করে।

ক্যাভ্যাট: এটি কেবল তখনই কার্যকরভাবে কাজ করে যদি আপনার মেশিনগুলি "অভিন্ন" হয় - এটি হ'ল আপনি সেগুলির উপরে একই বন্দরগুলির সেট স্থাপন করতে পারেন। এটা তোলে করতে আপনি পোর্ট সেট তারতম্য আছে কাজ করে, কিন্তু যে যথেষ্ট প্রশাসনিক ওভারহেড বৃদ্ধি পায়।

দাবি অস্বীকার: আমি বন্দর রক্ষণাবেক্ষণকারী sysutils/radmind। হ্যাঁ, আমি এটি অনেক পছন্দ করেছিলাম যা আমি এটি গ্রহণ করেছি।


এগুলি সবই বিভিন্ন আকারের ফ্রিবিএসডি এনভায়রনমেন্টগুলি (1-2 মেশিন থেকে শুরু করে 100 এরও বেশি) পরিচালনার আমার অভিজ্ঞতার উপর ভিত্তি করে। কনফিগারেশন / সিস্টেম ম্যানেজমেন্ট সরঞ্জামগুলি যে কোনও মানকৃত চিত্রটিকে ধাক্কা দেয় এবং বজায় রাখে তা আমার অভিজ্ঞতাকে হ্যান্ডেল করার জন্য সর্বোত্তম উপায়।


ভাল পয়েন্টার। আমি পূর্বে পুপেটের সাথে কিছুটা খেলেছি এবং উবুন্টুতে এটি ভালবাসি। তবুও, আমি নিশ্চিত নই যে এটি ফ্রিবিএসডি-র সাথে কতটা ভাল খেলে। আমি এখনও এটি চেষ্টা করতে হবে। নির্বিশেষে, এমনকি পুতুলের সাথেও, আমি মনে করি এটি পোর্টআপগ্রেডের দিকে কল করে যা আমাদের আবার স্কোয়ারে নিয়ে যায়। এটি কাজ করার মতো অন্য কোনও উপায় আমি দেখতে পাচ্ছি না, কারণ এরপরে এটি pkg_delete / pkg_add বা 'pkg_add -f' করা দরকার যা ভাল ধারণা হবে না। হার্ডওয়্যার যতদূর যায় - তারা সর্বজনীন মেহলে (কেভিএম / কিউমু) চালিত হওয়ায় তারা সকলেই অভিন্ন।
ভিপিটারসন

আপনার হার্ডওয়্যার এবং বেসলাইন সফ্টওয়্যার কনফিগারেশনগুলি অভিন্ন হলে আমি পুরো সিস্টেম চিত্রটি পরিচালনা করে র‌্যাডমাইন্ডের মতো কিছু প্রস্তাব করব। পুতুল এবং শেফ দুর্দান্ত সরঞ্জাম, তবে আপনি দেখিয়েছেন যে তারা অন্তর্নিহিত ওএস বাইনারিগুলি কল করে, যা আপনাকে একটি বিল্ড হোস্ট ব্যবহার করে এবং প্যাকেজ বিতরণ করতে পিছনে ফেলে দেয়। সার্ডিগেট সিসাদমিন হওয়ার চেষ্টা না করে ("যদি এখানে থাকার কথা না হয় তবে এটি এটিকে প্রতিস্থাপন বা অপসারণ করুন") র‌্যাডমাইন্ড এড়াতে এড়ান ("এই কমান্ডগুলি চালান / এই ফাইলগুলিকে কনফিগার করার জন্য পরিবর্তন করুন) বক্স ")।
voretaq7

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

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

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

6

আশ্চর্যের বিষয় যে কেউ পোর্ট-এমজিএমটি / টিন্ডারবক্স উল্লেখ করেনি :

টিন্ডারবক্স হ'ল ফ্রিবিএসডি বন্দরগুলির জন্য প্যাকেজ বিল্ডিং সিস্টেম, পয়েন্টহ্যাট বিল্ডিং ক্লাস্টারে ব্যবহৃত অফিসিয়াল পোর্টবিল্ড স্ক্রিপ্টগুলির উপর ভিত্তি করে। টিন্ডারবক্স লিখেছিলেন জো মার্কাস ক্লার্ক ke

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

আপনার প্রয়োজনীয় প্ল্যাটফর্ম এবং আর্কিটেকচারের জন্য আপনার প্রয়োজনীয় পোর্টগুলির প্যাকেজ সেট সহজেই সরবরাহ করার জন্য টিন্ডারবক্স ডিজাইন করা হয়েছে। নতুন পোর্ট এবং পোর্ট আপগ্রেডগুলি পরীক্ষা করার জন্য, বিশেষত নির্ভরতা এবং প্যাকিং তালিকাগুলি পরীক্ষা করার জন্য টিন্ডারবক্সও দুর্দান্ত সরঞ্জাম। এটি ফ্রিবিএসডি-র বিভিন্ন প্রকাশের বন্দরগুলি পরীক্ষা করার জন্যও কার্যকর, যেহেতু আপনি ফ্রিবিএসডি X. এক্স / ৮ এক্স হোস্টে জেল হিসাবে ফ্রিবিএসডি 6. এক্স ওয়ার্ল্ড চালাতে পারেন।

এছাড়াও pkgng এ স্যুইচ করা প্যাকেজ মোতায়েনকে সহজতর করে।
এটি গিথুব এ দেখুন: https://github.com/pkgng/pkgng


1
যদিও এটি বিভিন্ন পরিবেশে (একাধিক সংস্করণ, আর্কিটেকচার ইত্যাদি) প্রকৃত প্যাকেজগুলি তৈরি করার পক্ষে কার্যকর হতে পারে তবে প্যাকেজ স্থাপনের বিষয়টি সত্যিই সমাধান করে না।
ভিপিটারসন

তাই আপনি আপনার স্থাপনার সমাধান (যেমন সেট পেতে voretaq7 এর উত্তরে মন্তব্য এই একত্রিত করতে পারেন টিন্ডারবক্স, প্যাকেজ HTTP- র মাধ্যমে উপলব্ধ PACKAGEROOT/ PACKAGESITEএবং ব্যবহার radmind বা পুতুল / পাচক বা রাঁধুনি)।
জেমস ও'গর্মন

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

2
আপনি উত্স থেকে তৈরি বা বাইনারি প্যাকেজ ব্যবহার করে থাকলে পোর্টআপগ্রেড ঠিক কী করতে pkg_deleteহবে - প্রথমে চালানো উচিত এবং তারপরে নতুন সংস্করণ ইনস্টল করুন। ওপেনবিএসডি একটি আপগ্রেড বিকল্প অন্তর্ভুক্ত করে এটি আরও ভালভাবে পরিচালনা করেছে pkg_add। পোর্টআপগ্রেড সম্পর্কে নিশ্চিত নয় তবে পোর্টমাস্টার কেবলমাত্র আইএনডিএক্স ব্যবহার করে কাজ করতে পারে এবং একটি পূর্ণ বন্দর গাছ নয়।
জেমস ও'গর্মন 21':

1
ডান, তবে পিকেজি_ডিলেট কোনও যুক্তিযুক্ত পন্থা নয়। ধরা যাক আপনি রুবি, পাইথন বা অন্য যে কোনও প্যাকেজ আপগ্রেড করতে চান যা প্রচুর পরিমাণে অন্যান্য প্যাকেজগুলির পূর্বশর্ত। pkg_delete এর পরে আপনার সমস্ত নির্ভরতা মুছতে হবে, যা সম্ভবত কোনও উত্পাদন সিস্টেমের জন্য একটি বিকল্প। Portupgrade একটি করে এ পর্যন্ত এই সঙ্গে ভাল চাকরি, কিন্তু আবার, এটা স্কেল বলে মনে হচ্ছে না।
ভিপিটারসন

3

আমি কেবলমাত্র সু-সুরযুক্ত এনএফএস-এর উপর কেবল পঠন / ভাগ করে / ভাগ করা / প্যাকেজ ডেটাবেসগুলিকে / var থেকে / usr এ সিমিলিং করে তাদের সাথে সিমিকলিং করে 100+ ফ্রিবিএসডি সার্ভার পরিচালনা করেছি (কঠোরভাবে প্রয়োজনীয় নয় তবে pkg_info এবং এগুলি সক্ষম করে)। এক বা দুটি ফাইল থাকতে পারে যা এক দিক বা অন্য দিকে সিমিলিংক করা দরকার ছিল তবে পুরো সেটআপটি বের করতে আমার প্রায় এক ঘন্টা সময় লেগেছে। এটি খুব, খুব ভাল কাজ করেছে। যদি আমি স্কেলিংয়ের সমস্যাগুলি চালিত করি তবে আমি অতিরিক্ত এনএফএস সার্ভারগুলি যুক্ত করে কাজের চাপ ভাগ করে দিতাম তবে এটি কখনই সামনে আসেনি। পারফরম্যান্স আমার পক্ষে কখনও সমস্যা ছিল না (আসলে এটি দুর্দান্ত ছিল) তবে আমি মনে করি আপনি এনডিএস সার্ভারের / ইউএসআর (বা এর একটি অনুলিপি) কোনও এমডিতে রাখতে পারেন।


এনএফএস-এর মাধ্যমে নির্মিত প্যাকেজ ফাইলগুলি ভাগ করে নেওয়া (এটি যা মনে হচ্ছে আপনি কী বলছেন?) অবশ্যই অন্য যুক্তিসঙ্গত পন্থা - এরপরে আপনি প্যাকেজগুলি ইনস্টল / আপগ্রেড করার জন্য পুতুল (বা এমনকি হোমগ্রাউন এসএসএইচ-এবং-শেল স্ক্রিপ্ট) এর মতো কিছু ব্যবহার করতে পারেন you এনএফএস শেয়ার থেকে।
voretaq7

1

দুর্ভাগ্যক্রমে কেউ এর ভাল সমাধান পায়নি বলে মনে হয়। সম্ভবত সম্ভবত এটি অন্তর্ভুক্তকরণ সরঞ্জামগুলিতে সীমাবদ্ধতার কারণে।

আমি এখানে যা এলাম তা এখানে: পুরো বন্দর-গাছ রফতানি করার ধারণাটি আমি বাতিল করে দিয়েছি। পরিবর্তে, আমি দিয়েছি এবং প্রতিটি নোডে একটি পূর্ণ বন্দর গাছ লাগিয়েছি। আমি তখন এনএফএসের (প্যাকেজের বিতরণ সক্ষম করার জন্য) 'প্যাকেজগুলি' লাগিয়েছি।

আমি পোর্টনেপ প্রক্রিয়াটি দ্রুত করার জন্য একটি ক্যাচিং প্রক্সি (সম্ভবত স্কুইড) ব্যবহার করার ইচ্ছাও করছি। এটি আমার ব্লগে কীভাবে সেটআপ করা যায় সে সম্পর্কে একটি ছোট পোস্ট লিখেছিলাম ।

তথ্যসূত্র:

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