কোনটি ভাল: RAID5 + 1 হটস্পারে / RAID6? [বন্ধ]


45

শুধু কৌতূহলী, আমার নতুন সার্ভারের জন্য আমার কাছে 6 x 1TB 7200RPM লাইন এসএএসের কাছে রয়েছে। আমি এটিকে হয় RAID5 + 1 হট স্পিয়ার বা RAID6 হিসাবে কনফিগার করতে পারি।

আমার কী নির্বাচন করা উচিত?


1
আমি অনুমান করি যে এখন থেকে ৫ বছর ... অনেক লোক জিজ্ঞাসা করবেন .. কি রেড? এটি খুব শীঘ্রই দরজা শিরোনাম হতে চলেছে তবে আজকের জন্য এখনও প্রাসঙ্গিক।
ম্যাট

1
সুতরাং অনেক লোক তথ্যের পরিবর্তে মতামত জানায়, তাই আমরা বিষয়টি বন্ধ করে দিই এবং ঘটনাগুলিকে আলোচিত হতে দেই না? এটা ভুল মনে হচ্ছে। কঠোর গণিত রয়েছে যা র‌্যাড 6 সুরক্ষা, ক্ষমতা এবং গতি কীভাবে প্রভাবিত হয় তার জন্য কেন ভাল। জড়িত কোন মতামত।
স্কট অ্যালান মিলার

উত্তর:


36

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

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

ডায়াগনস্টিকস অনুসারে, ড্রাইভ বিতে একটি "খারাপ স্পট" ছিল সিস্টেমটি সেই ড্রাইভে বারবার নীরবে ব্যর্থ হয়েছিল, এবং এখন এটি ডেটা পুনর্নির্মাণ করছে, এটি সেই স্পটটি পড়তে পারে নি, এবং যতবারই না তা বোঝা যায় না B. আমরা সরাসরি নিয়ন্ত্রণকারীর বাইরেও মেরামতটি চালিয়েছি এবং এটি প্রতিবার বলেছিল যে সবকিছু ঠিক আছে, এটি পুনর্নির্মাণ করবে না। সুতরাং আমাদের কাছে একটি ডেড ড্রাইভ এবং একটি ড্রাইভ রয়েছে যা স্পট থেকে পড়তে পারে না ... আমরা 2 টি ড্রাইভ প্রতিস্থাপন এবং ব্যাকআপ থেকে পুনরুদ্ধার করি।

পাঠ: RAID একটি ব্যাকআপ নয়, এবং RAID 5 আর বড় ড্রাইভের জন্য উপলব্ধতার বিকল্প নয়।

আপনি যদি গতি বাড়াতে বা স্টোরেজের আকার বাড়িয়ে তুলতে চান তবে আপনি নিজের সিদ্ধান্তের মধ্যে ভারসাম্য বজায় রাখতে পারেন। আপনার প্রয়োজন এবং লক্ষ্যগুলির ক্ষেত্রে আপনার প্রয়োজনগুলি সংজ্ঞায়িত করা দরকার, "আমার প্রয়োজন র‌্যাড দরকার, আমি কোনটি ব্যবহার করব?"


1
RAID অপারেশনগুলির উদ্দেশ্যে বোঝানো গাড়িগুলি সাধারণত তাদের ত্রুটি সংশোধন খুব দ্রুত ব্যর্থ করে এবং ব্যর্থতাটি নিয়ামককে জানায়। ধারণাটি হ'ল আপনি উপরে বর্ণিত পরিস্থিতিগুলি এড়াতে পারবেন - খারাপ ব্লকটি পুনরায় তৈরি হয়ে যায় এবং ডিস্কটি খারাপ হিসাবে চিহ্নিত হওয়ার পরিবর্তে ডেটা প্যারিটি থেকে পুনরুদ্ধার হয় কারণ এই ব্লকটি পুনরুদ্ধার করার জন্য 45 সেকেন্ডের জন্য এটি "স্তব্ধ হয়ে যায়"। পশ্চিমা ডিজিটাল এমনকি তাদের ডিস্কগুলির ত্রুটি পুনরুদ্ধারের আচরণ পরিবর্তন করার জন্য একটি ইউটিলিটি রয়েছে যদিও ইউটিলিটিটি "আনুষ্ঠানিকভাবে" প্রকাশিত হয়নি।
খ্রিস্ট

7
আমি যুক্তিটি অনুসরণ করতে পারি না। আপনি কি RAID 6, বা RAID 5 ব্যবহার করছেন বলছেন?
মার্টিন

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

@ ক্রিস - বিভ্রান্তির জন্য দুঃখিত - আমি আপনার মন্তব্যে মন্তব্য করছি না। (আমি পোস্ট করার সময় এটি ছিল না।) আমার প্রশ্নটি বার্টে পরিচালিত হয়েছিল: তিনি যদি বলছিলেন যে র‌্যাড 5 অবশ্যই হওয়া উচিত, বা RAID-5 পর্যাপ্ত নয় এবং কেবল RAID 6 করবে তা আমি বুঝতে পারি না।
মার্টিন

2
@ ক্রিস-আমি জানি না যে পার্থক্যটি আর কী হবে, তবে পিইআরসি হ'ল হার্ডওয়্যার ভিত্তিক, আনবোর্ড ক্যাশে, ইন্টিগ্রেটেড ম্যানেজমেন্ট টুলস, হট অদলবদল ইত্যাদি এবং ডেল প্রয়োজনীয় সার্ভারগুলির জন্য দশটি গ্র্যান্ড চার্জ করছেন না যে তারা মোটামুটি're এন্টারপ্রাইজ পরিবেশে জনপ্রিয়। ড্রাইভগুলি ত্রুটির কথা বলেছে; এভাবেই আপনি ত্রুটির বার্তা এবং সতর্কতা পান। তবে ইউআরই হ'ল এমন কিছু যা ড্রাইভে ঘটে এবং তারা ... ওহ ... অ্যারে পুনর্গঠন করার মতো কিছু না করা পর্যন্ত তারা এ সম্পর্কে সচেতন বলে মনে হয় না। তারপরে হঠাৎ "আরে! এখানেও সমস্যা আছে!"
বার্ট সিলভারস্ট্রিম

16

RAID6 ব্যবহার করুন। জেডডিনেটে রবিন হ্যারিসের লেখা "কেন রেড 6 টি 2019 এ কাজ বন্ধ করে দিয়েছে" পড়ুন ।


4
এবং 2019 পরে কি?
মাদুর

2
যে বছর RAID 6 কাজ করা বন্ধ করে দেয় সেই বছর থেকে @ ম্যাট হাই। ;-) নিবন্ধে এটি আসলেই হওয়া উচিত ছিল, তবে আপনাকে মুছে ফেলা কোডিং সন্ধান করতে হবে , সাধারণত জিএফ (256) এর উপরে বহুবর্ষীয় ওভারস্যাম্পলিংয়ের মাধ্যমে প্রয়োগ করা হয়েছে । এর অর্থ (প্রায়) নির্বিচারে রিডানডেন্সি স্তরগুলি ব্যবহার করা যেতে পারে, যেমন 9 + 3 বা 12 + 4। মূল অসুবিধাটি হ'ল এটি RAID 6 বা এমনকি RAID 5 টি পার্টির তুলনায় বেশ খানিকটা কম্পিউটেশনালি ব্যয়বহুল।
আর্ন ভোগেল

9

RAID 5 কখনও কখনও অতিরিক্ত অতিরিক্ত (উষ্ণ অতিরিক্ত ছাড়াই) থাকা উচিত নয়। RAID 6 সর্বদা একই ড্রাইভ গণনার আরও ভাল ব্যবহার।

http://www.smbitjournal.com/2012/07/hot-spare-or-a-hot-mess/

RAID 5 সমাধানের কোনও স্থান / সক্ষমতা সুবিধা বা ব্যয় সুবিধা নেই (তবে কিছু ছোট কার্যকারিতা সুবিধা) তবে ইউআরই ঝুঁকির মতো জিনিসগুলি প্রশমিত করার জন্য এটি এক টন করে।


3
RAID-6 উল্লেখযোগ্যভাবে ধীর হয় তারপরে RAID-5 + একটি গরম অতিরিক্ত। RAID-6 সবসময় ভাল হয় না।
স্টিফান লাসিউইস্কি

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

2
র‌্যাড দ্রুতগতির, লেখায় ধীর। তবে কেবল তখন এলোমেলো। অনুক্রমিক, এটি উভয় উপর দ্রুত। তবে সুরক্ষা পার্থক্যটি মহাকাব্য, প্রস্থের পার্থক্যের একটি সম্পূর্ণ ক্রম। কোনও বিজনেস ক্লাসের হার্ডওয়্যার RAID এর মতো রাইটিং ক্যাশে যুক্ত করুন এবং এলোমেলোভাবে RAID 6 ড্রপ লিখুন। এটি খুব বিরল যে R6 আর 5 এর চেয়ে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে বাড়তি স্পিন্ডল রয়েছে।
স্কট অ্যালান মিলার

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

6

এটি একটি সহজ - আপনি কি আরও বেশি উপলভ্য ডিস্কের জায়গা বা ডিস্কগুলি ব্যর্থ করে বেঁচে থাকার ক্ষমতা চান - এটি এত সহজ simple

সুতরাং আমি কিছু বুনো অনুমান করব - আপনি performance.২ এর হিসাবে পারফরম্যান্সের বিষয়ে চিন্তা করেন না এবং যে 1TB ডিস্ক হওয়ায় আপনি উপলভ্য স্থানের যত্ন নেবেন - আপনি কী ধরণের ডেটা চান তা উল্লেখ করেন না সঞ্চয় করতে কিন্তু আমি ধরে নিচ্ছি এটি হয় কেবলমাত্র ভিডিও ফাইল বা ভিডিও এবং অডিও এর সংমিশ্রণ। আমি যদি ঠিক আছি তবে সম্ভবত আপনি ডেটা প্রতিস্থাপনের জন্য লড়াই করবেন? সেক্ষেত্রে আমি 5 বা 6 টিই বেছে না নিলেও আর 10 এর সাথে যাব, হ্যাঁ আপনি আর 6 এর চেয়ে 1 টিবি এবং আর 5 এর চেয়ে 2 টিবি হারাবেন তবে এটি দ্রুত হবে এবং তিনটি ডিস্ক পপ থেকে বেঁচে থাকতে পারে। যদি আমি ভুল হয়ে থাকি এবং আপনি দ্রুত আপনার ডেটা পুনরুদ্ধার করতে পারেন তবে আপনি আর 5 এও যেতে পারেন যাতে আপনি সর্বাধিক উপলভ্য স্থান পান।


1
"হ্যাঁ আপনি আর 6 এর চেয়ে 1 টিবি এবং আর 5 এর চেয়ে 2 টিবি হারাবেন তবে এটি দ্রুত হবে এবং তিনটি ডিস্ক পপ থেকে বেঁচে থাকতে পারে” "- আপনি যদি ভাগ্যবান হন; সবচেয়ে খারাপ ক্ষেত্রে আপনি 1 টিরও বেশি ড্রাইভ ব্যর্থতা থেকে বাঁচতে পারবেন না (যদি 2 য় প্রথম প্রথম RAID তে 1 জোড়া থাকে)। যদি আমি ভুল না হয়ে থাকি, 1, 2, 3, এবং 4 ড্রাইভ ব্যর্থতার জন্য, ব্যাকআপের অবলম্বন করার 'নির্দোষ' ক্রমবর্ধমান সম্ভাবনা যথাক্রমে 0, 1/5, 3/5, 1, (শূন্যের সংখ্যা) পদগুলি ড্রাইভ ব্যর্থতার সংখ্যা যা নিরাপদে সহ্য করা যায়)। RAID 6 এর সাথে এটি 0, 0, 1, যা কাজ করা কিছুটা সহজ, এছাড়াও আপনি অতিরিক্ত টেরাবাইট হারাবেন না।
জেমস হাই হাই

2
আপনি ঠিক বলেছেন জেমস, গত পাঁচ বছরে জিনিসগুলি পরিবর্তিত হয়েছে (ওএমজি যা অনেক আগে ছিল - বাহ!) এবং এখন আমি কেবল আর 6/60 এবং আর 1/10 এর প্রস্তাব দিই।
চপার 3

4

পারফরম্যান্স একটি উদ্বেগের বিষয় হলেও এটি যতটা ভাবেন ততটা উদ্বেগের বিষয় নয়। নতুন র‌্যাড হার্ডওয়্যার 2 প্যারিটি স্ট্রিপগুলি 1 স্ট্রিপের মতো দ্রুত লেখার মতো হতে চলেছে

এছাড়াও, এসএএস ড্রাইভগুলিতে সাধারণত একটি বিট ত্রুটি হার কম থাকে যা একটি কম অপসারণযোগ্য পড়ার ত্রুটির (ইউআরআই) অনুবাদ করে। সাধারণত প্রস্থের আদেশ (10x), তবে, যদি এসএএস ড্রাইভটি স্যাটা ড্রাইভের মতো একই মডেল হয় তবে আপনি কোনও উন্নতি দেখতে পাবেন না।

অবশেষে, RAID-5 এবং URE- র প্রশ্ন এবং এটি কীভাবে আপনার দিনটিকে নষ্ট করতে পারে সে সম্পর্কে আমি কিছুক্ষণ আগে এটিতে একটি নিবন্ধ লিখেছিলাম: http://subnetmask255x4.wordpress.com/2008/10/28/sata- অপরিবর্তনযোগ্য-ত্রুটিগুলি এবং কীভাবে সেই প্রভাবগুলি-অভিযান / যাতে আমি এই কয়েকটি প্রশ্নের কভার করি। মূলত, ভাল হার্ডওয়্যারে RAID-6 (সফ্টওয়্যার RAID নয়) RAID-5 এর সমতুল্য পারফরম্যান্স দেখায়। আপনার যদি দুর্বল হার্ডওয়্যার থাকে বা আপনি সফ্টওয়্যার RAID ব্যবহার করছেন তবে আপনি একটি পারফরম্যান্স হিট দেখতে পাবেন।

বরাবরের মতো, ব্যাকআপগুলি হ'ল আপনার সংরক্ষণের অনুগ্রহ। একটি ব্যাকআপ নীতি বাস্তবায়ন করতে ভুলবেন না এবং এটি থেকে পুনরুদ্ধার করা যেতে পারে তা যাচাই করুন।


2
বাহ, আমার মনে হয় আমি সেই ড্যাং জায়গা জুড়ে ছিলাম। আমি যা বলার চেষ্টা করছিলাম তা হ'ল আপনার ড্রাইভগুলি দেওয়া, যদি আপনার কাছে একটি ভাল হার্ডওয়্যার র‌্যাড কন্ট্রোলার থাকে তবে রেড 6-র একটি গরম অতিরিক্ত (+1) সহ RAID 5 এর উপর কোনও ডাউনসাইড নেই। তবে, আপনার যদি ভাল হার্ডওয়্যার র‌্যাড কন্ট্রোলার না থাকে তবে আপনি ধীর পঠন এবং লিখতে দেখবেন, লেখাগুলি পড়ার চেয়ে কিছুটা ধীর গতির সাথে। আপনি যদি কেবলমাত্র সফ্টওয়্যার RAID ব্যবহার করেন তবে আপনি ধীর পঠন দেখতে পাবেন এবং অনেক ধীর গতিতে লিখছেন। ভাল হার্ডওয়্যার - RAID 6; দরিদ্র হার্ডওয়্যার - পারফরম্যান্স হিট সহ RAID 6; শুধুমাত্র সফ্টওয়্যার - RAID 5 (+1) এবং প্রচুর প্রার্থনা করুন।

3

এখানে প্রচুর ভাল পরামর্শ, বিশেষত বার্ট এবং চপার 3 থেকে।

আমি যুক্ত করব কেবলমাত্র ব্যর্থতার শর্তে আপনার কাজের চাপ পরীক্ষা করা । প্রাপ্যতা কেনার জন্য লোকেরা সাধারণত একটি RAID-5 / RAID-6 সেটআপ করে (যেমন ডিস্ক ব্যর্থতার কারণে সার্ভারটি নিচে যাচ্ছে না)। দুর্ভাগ্যক্রমে, কিছু কাজের চাপের জন্য - বিশেষত ভারী কাজের চাপ লিখুন, আপনি দেখতে পাবেন যে পারফরম্যান্স হিট যথেষ্ট তীব্র যে আপনি খুব বেশি কিনছেন না।

যদি আপনার টেস্টিং কার্যকর হয়, দুর্দান্ত - কেবল ব্যাকআপ কৌশলটি তৈরি করতে এবং পরীক্ষা করতে ভুলবেন না।


2

আমার মনে হয় RAID 5 বনাম 6 (এবং 10 বনাম) পারফরম্যান্সে নেমে আসে এবং আপনি যে ব্র্যান্ড (গুলি) ব্যবহার করেন সেগুলি আপনি কতটা বিশ্বাস করেন। আমরা প্রাথমিকভাবে এইচপি সার্ভার এবং এইচপি স্টোরেজ ব্যবহার করি এবং খুব কম ডিস্ক ব্যর্থতা পেয়েছি, তাই আমি কম সমালোচনামূলক সিস্টেমে RAID5 + হটস্পারে বা এমনকি কেবল RAID5 নিয়ে খুশি।

তত্ত্ব অনুসারে, প্রথম ব্যর্থ ড্রাইভটি পুনর্নির্মাণের সময় RAID6 আপনাকে দ্বিতীয় ড্রাইভ ব্যর্থতা থেকে বাঁচায়, তবে আপনি 2 টি পৃথক প্যারিটি স্ট্রাইপ উত্পন্ন করার জন্য বর্ধিত কম্পিউটিংগুলির বিপরীতে বাণিজ্য করেন। আমরা 6 ব্যবহার করি নি, সুতরাং আমি কোনও রেড 6 অ্যারে বনাম আরএআইডি 5 পুনর্নির্মাণ করা যেতে পারে তার পক্ষে কোন স্পেস দেখিনি, তবে আমি অনুমান করি যে এটি কেবল একটি নয়, 2 টি সমতা গণনা করতে হবে কারণ 6 টি আরও বেশি সময় নেবে।

যদি আমি RAID5 থেকে সরে যেতে যাচ্ছিলাম তবে আমি সম্ভবত 10 (বা 01) সাথে প্যারিটির গণনা থেকে পুরোপুরি দূরে সরে যেতে চাই। 6 ড্রাইভের সাহায্যে আপনি এটি করতে পারতেন, যদিও আপনি কেবলমাত্র অর্ধেকের সক্ষমতা অর্জন করেন।


2

RAID6। এইভাবে, যদি দুটি ডিস্ক অপেক্ষাকৃত দ্রুত উত্তরাধিকারে ব্যর্থ হয়, সুতরাং অ্যারের প্রথম ব্যর্থতা (বা 2 ডিস্ক বিদ্যুৎ বিভ্রাটের পরে স্পিন আপ করতে ব্যর্থ হয়েছে) থেকে পুনর্নির্মাণ শেষ করেনি, আপনি আপনার সমস্ত ডেটা হারান নি।


1

রাইড 6 এর আরও ওভারহেড রয়েছে, সুতরাং একই ধরণের ড্রাইভগুলি দ্রুততর হবে। অন্যদিকে আপনি একবার ডিস্কটি মারা যাওয়ার পরে সুবিধাটি হারাতে পারেন এবং রাই 5 পুনর্নির্মাণের পরে, যদি পুনর্নির্মাণের সময় অন্য কোনও ড্রাইভ মারা যায় তবে আপনি অ্যারে হারাতে পারেন risk

আপনার ক্ষেত্রে, আপনি বিভিন্ন পরিমাণে স্পিন্ডলে রেইড 5 বনাম 6 চালাচ্ছেন, তাই অতিরিক্ত স্পিন্ডলের কারণে রাইড 6 দ্রুত হতে পারে।


1

উত্তরের উত্তরগুলি ছাড়া, কেউ লেখার পারফরম্যান্সের কথা উল্লেখ করেনি। RAID 6 সাধারণত RAID 5 এর তুলনায় লেখালেখিতে সামান্য পারফরম্যান্স পেয়ে যায়, যেহেতু দুটি প্যারিটি স্ট্রাইপ বজায় রাখতে হবে।

তবুও, বেশিরভাগই RAID 6 এর সাথে যাওয়া সার্থক মনে করে।

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