Ext4 এর সাথে মিলে স্বচ্ছ সংকোচনের ফাইল সিস্টেম


26

আমি এমন একটি প্রকল্প যাচাই করার চেষ্টা করছি যা ext4 ফাইল সিস্টেমের ব্যবহারের সাথে সংকুচিত স্টোরেজ প্রয়োজন যেহেতু আমি যে অ্যাপ্লিকেশনটি ব্যবহার করি সেগুলি ext4 বৈশিষ্ট্যের উপর নির্ভর করে।

Ext4 এ স্বচ্ছ সংক্ষেপণের জন্য কি কোনও উত্পাদন / স্থিতিশীল সমাধান আছে?

আমি যা চেষ্টা করেছি:

সংক্ষেপণ সক্ষম সহ জেডএফএস ভলিউমের ওপরে Ext4 । এটি আসলে একটি বিরূপ প্রভাব ফেলেছিল। আমি lz4 কম্প্রেশন সক্ষম করে একটি জেডএফএস ভলিউম তৈরি করার চেষ্টা করেছি এবং / dev / zvol / এ একটি এক্সট 4 ফাইল সিস্টেম তৈরি করেছি ... তবে zfs ভলিউম প্রকৃত ব্যবহারের দ্বিগুণ দেখিয়েছে এবং সংক্ষেপণের কোনও প্রভাব আছে বলে মনে হয় না।

# du -hs /mnt/test
**1.1T**    /mnt/test
# zfs list
NAME        USED  AVAIL  REFER  MOUNTPOINT
pool       15.2T  2.70G   290K  /pool
pool/test  15.2T  13.1T  **2.14T**  -

জেডএফএস ক্রিয়েশন কমান্ড

zpool create pool raidz2 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde2 /dev/sdf1 /dev/sdg1 /dev/sdh2 /dev/sdi1
zfs set recordsize=128k pool
zfs create -p -V15100GB pool/test
zfs set compression=lz4 pool/test
mkfs.ext4 -m1 -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink /dev/zvol/pool/test

ফিউজ কমপ্রেস: কাজ করার জন্য মনে হয়েছে তবে 100% স্থিতিশীল নয়। বিকল্প খুঁজছেন।

লেআফএফএস: এক্সটক্সের সাথে মিলিয়ে লেসফেস ব্যবহার করা কি সম্ভব? আমি এখনও চেষ্টা করি নি তবে ব্যবহারকারীর অন্তর্দৃষ্টি সম্পর্কে আগ্রহী।

একটি বড় সমস্যা: সত্য স্বচ্ছতা নয়

ফিউজকম্প্রেসের সাথে আমি দেখেছি এমন একটি সমস্যা ছিল কোটা। উদাহরণস্বরূপ, যদি আমি ফাইল সিস্টেমে সংক্ষেপণ সক্ষম করে থাকি তবে আমি চাই যে আমার সিস্টেমটি সংক্ষেপ থেকে উপকৃত হয়, অগত্যা শেষ ব্যবহারকারী নয়। আমি যদি কোনও ব্যবহারকারীর জন্য ১.২ এর সংকোচন অনুপাত সহ 1 গিগাবাইটের কোটা সক্ষম করে থাকি তবে তারা 1 জিবি ডেটা এবং সংক্ষেপণ থেকে উপকৃত সিস্টেমের চেয়ে 1.5 জিবি ডেটা আপলোড করতে সক্ষম হবে। এটি ডিএফ-হাতে প্রদর্শিত হয়েছিল। কোটাতে স্বচ্ছতার সংকোচনের কোনও সমাধান আছে কি?


অবশ্যই। আপনি দয়া করে ওএস / ডিস্ট্রো / সংস্করণ এবং আপনি যে ডেটা সঞ্চয় করতে চান তার প্রকৃতি সম্পর্কে বিশদ তালিকাবদ্ধ করতে পারেন?
ew white

এছাড়াও হার্ডওয়ারের বিশদ।
ew white

1
একটি সফ্টওয়্যার RAID6- এ @Wwite 8x3TB। ডেটা অন্যান্য সার্ভারগুলি থেকে মিশ্রিত ডেটা প্রকার এবং বিভিন্ন প্রান্ত ব্যবহারকারী, নথি ইত্যাদির ব্যাকআপগুলিকে সংযুক্ত করা হবে CentOS 6.5 x64।
ব্যবহারকারী 235918

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

@ অ্যান্ড্রুশুলম্যান: সংক্ষেপণের সুবিধা নেওয়া আমার গণনা থেকে উত্তম পদ্ধতি method অতিরিক্ত ডিস্ক এবং কন্ট্রোলাররা যা তাদের সমর্থন করে তাদের ব্যয় সিপিইউয়ের ব্যয়ের চেয়ে বেশি।
ব্যবহারকারী 235918

উত্তর:


27

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

দেখুন: https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/ অন্য ব্যাখ্যা জন্য।

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

এই zvol তৈরি করা লিনাক্সের জন্য একটি ব্লক ডিভাইস উপস্থাপন করে যা আপনার পছন্দের ফাইল সিস্টেমের সাথে ফর্ম্যাট করা যায়। আপনার পার্টিশন এবং সমাপ্ত ভলিউমটি ব্যবহার করুন fdiskবা partedতৈরি করুন mkfs

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


এখানে আমার কর্মপ্রবাহ ...

চারটি ডিস্ক সমন্বিত একটি জপুল তৈরি করুন:
আপনি যে ashift=12ধরণের ডিস্ক ব্যবহার করছেন তার জন্য নির্দেশিকা চাইবেন । এক্ষেত্রে জিপুলের নাম "ভোল 0"।

zpool তৈরি করুন -o ashift = 12 -f ভোল0 আয়না scsi- ACOW140403AS1322043 scsi-ACOW140403AS1322042 মিরর scsi- ACOW140403AS1322013 scsi- ACOW140403AS1322044

প্রাথমিক zpool সেটিংস সেট করুন:
আমি autoexpand=onযদি বৃহত্তর ড্রাইভগুলির সাথে ডিস্কগুলি প্রতিস্থাপন করি বা জেডএফএস মিরর সেটআপে পুলটি প্রসারিত করি সে ক্ষেত্রে আমি zpool পর্যায়ে সেট করি। দুর্বল পারফরম্যান্স এবং জপুলটি প্রসারিত করতে অক্ষমতার কারণে আমি সাধারণত জেডএফএস রেডজ 1/2/3 ব্যবহার করি না।

zpool set autoexpand=on vol0

প্রাথমিক zfs ফাইল সিস্টেম বৈশিষ্ট্য সেট করুন:
দয়া করে নতুন জেডএফএস ইনস্টলেশনের জন্য lz4সংক্ষেপণ অ্যালগরিদম ব্যবহার করুন । সব সময় এটি ছেড়ে দেওয়া ঠিক আছে।

zfs set compression=lz4 vol0
zfs set atime=off vol0

জেডএফএস zvol তৈরি করুন:
লিনাক্সে জেডএফএসের জন্য, আপনি একটি বৃহত ব্লক আকার ব্যবহার করা খুব গুরুত্বপূর্ণ। -o volblocksize=128kএখানে একেবারে প্রয়োজনীয়। -sবিকল্প একটি বিক্ষিপ্ত zvol তৈরি করে এবং পুকুর স্থান গ্রাস না হওয়া পর্যন্ত দরকার। আপনি যদি নিজের ডেটা ভালভাবে জানেন তবে আপনি এখানে ওভার কমিট করতে পারেন। এই ক্ষেত্রে, পুলটিতে আমার প্রায় 444 গিগাবাইট ব্যবহারযোগ্য ডিস্কের জায়গা রয়েছে তবে আমি এক্সএফএসের কাছে একটি 800 জিবি ভলিউম উপস্থাপন করছি।

zfs create -o volblocksize=128K -s -V 800G vol0/pprovol

পার্টিশন zvol ডিভাইস:
(পরবর্তী zvol জন্য প্রথম / zvol; / dev / zd16, / dev / zd32, ইত্যাদির জন্য / dev / zd0 হওয়া উচিত )

fdisk /dev/zd0 # (create new aligned partition with the "c" and "u" parameters)


নতুন সিস্টেম নির্মিত পার্টিশনে ফাইল সিস্টেম: mkfs.xfs বা ext4 তৈরি করুন এবং মাউন্ট করুন , / dev / zd0p1।

mkfs.xfs -f -l size=256m,version=2 -s size=4096 /dev/zd0p1

ইউআইডি গ্র্যাব করুন blkidএবং সংশোধন করুন /etc/fstab

UUID=455cae52-89e0-4fb3-a896-8f597a1ea402 /ppro       xfs     noatime,logbufs=8,logbsize=256k 1 2

নতুন ফাইল সিস্টেমটি মাউন্ট করুন।

mount /ppro/

ফলাফল ...

[root@Testa ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sde2        20G  8.9G  9.9G  48% /
tmpfs            32G     0   32G   0% /dev/shm
/dev/sde1       485M   63M  397M  14% /boot
/dev/sde7       2.0G   68M  1.9G   4% /tmp
/dev/sde3        12G  2.6G  8.7G  24% /usr
/dev/sde6       6.0G  907M  4.8G  16% /var
/dev/zd0p1      800G  398G  403G  50% /ppro  <-- Compressed ZFS-backed XFS filesystem.
vol0            110G  256K  110G   1% /vol0

জেডএফএস ফাইল সিস্টেম তালিকা।

[root@Testa ~]# zfs list
NAME           USED  AVAIL  REFER  MOUNTPOINT
vol0           328G   109G   272K  /vol0
vol0/pprovol   326G   109G   186G  -   <-- The actual zvol providing the backing for XFS.
vol1           183G   817G   136K  /vol1
vol1/images    183G   817G   183G  /images

জেডএফএস zpool তালিকা।

[root@Testa ~]# zpool list -v
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
vol0   444G   328G   116G    73%  1.00x  ONLINE  -
  mirror   222G   164G  58.1G         -
    scsi-AccOW140403AS1322043      -      -      -         -
    scsi-AccOW140403AS1322042      -      -      -         -
  mirror   222G   164G  58.1G         -
    scsi-AccOW140403AS1322013      -      -      -         -
    scsi-AccOW140403AS1322044      -      -      -         -

ZFS zvol বৈশিষ্ট্যাবলী ( নোট নিতে referenced, compressratioএবংvolsize )।

[root@Testa ~]# zfs get all vol0/pprovol
NAME          PROPERTY               VALUE                  SOURCE
vol0/pprovol  type                   volume                 -
vol0/pprovol  creation               Sun May 11 15:27 2014  -
vol0/pprovol  used                   326G                   -
vol0/pprovol  available              109G                   -
vol0/pprovol  referenced             186G                   -
vol0/pprovol  compressratio          2.99x                  -
vol0/pprovol  reservation            none                   default
vol0/pprovol  volsize                800G                   local
vol0/pprovol  volblocksize           128K                   -
vol0/pprovol  checksum               on                     default
vol0/pprovol  compression            lz4                    inherited from vol0
vol0/pprovol  readonly               off                    default
vol0/pprovol  copies                 1                      default
vol0/pprovol  refreservation         none                   default
vol0/pprovol  primarycache           all                    default
vol0/pprovol  secondarycache         all                    default
vol0/pprovol  usedbysnapshots        140G                   -
vol0/pprovol  usedbydataset          186G                   -
vol0/pprovol  usedbychildren         0                      -
vol0/pprovol  usedbyrefreservation   0                      -
vol0/pprovol  logbias                latency                default
vol0/pprovol  dedup                  off                    default
vol0/pprovol  mlslabel               none                   default
vol0/pprovol  sync                   standard               default
vol0/pprovol  refcompressratio       3.32x                  -
vol0/pprovol  written                210M                   -
vol0/pprovol  snapdev                hidden                 default

কেন zvol পার্টিশন? এটি কি সরাসরি ব্যবহার করা যাবে না?
মাইকেল হ্যাম্পটন

3
@ মিশেলহ্যাম্পটন মূলত সারিবদ্ধতা এবং ধারাবাহিকতার জন্য। এছাড়াও, আমি যদি অন্তর্নিহিত ভলিউমটি প্রসারিত করি তবে নমনীয়তা চাই। এখানে বিমূর্তকরণের বেশ কয়েকটি স্তর রয়েছে। এটি /dev/sdbবনাম ব্যবহারের যুক্তির অনুরূপ /dev/sdb1
ew white

1
আপনার তথ্যের জন্য ধন্যবাদ. এখানে অনেক ভাল পরামর্শ। আমি এটি পরীক্ষা করতে যাচ্ছি।
ব্যবহারকারী 235918

2
@ মিশেলহ্যাম্পটন বিটিডাব্লু, আজকাল আমি আর পার্টিশন করি না ... বিশেষত ভার্চুয়াল মেশিনগুলির সাথে।
ew white

1
আপনি কি দয়া করে এই সেটআপে (র‌্যাম, সিপিইউ) জেডএফএস স্তরটির জন্য অতিরিক্ত সংস্থান খরচ সম্পর্কে বলতে পারেন?
জেড

4

এক্সট 4 ফাইল সিস্টেমে আপনাকে বাতিল করতে সক্ষম করতে হবে। বাতিল করা ছাড়া, ফাইলগুলি সরানো হলে zfs স্থানটি পুনরায় দাবি করে না। এটি ext4 ফাইল সিস্টেমের রিপোর্ট এবং zfs ভলিউম রিপোর্টের মধ্যে বৃহত্তর স্থানের তফাতগুলিতে বাড়ে।


4
পারফরম্যান্সের প্রভাব রয়েছে বলে রেড হ্যাট ফেলে দেওয়া মাউন্ট অপশনের (এক্সট 4 বা এক্সএফএস সহ) অনলাইনে এটি করার পরামর্শ দিচ্ছে না। পর্যায়ক্রমে fstrimকমান্ডটি চালানো ক্লিনার ।
ew

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