ডিবিয়ান 9 প্রসারিতগুলিতে zfs ইনস্টল করুন


11

আমি ডেবিয়ান 9.1 এ zfs ইনস্টল করার চেষ্টা করেছি, তবে আমি কিছু ত্রুটি অনুভব করছি।

আমার প্রথম ইনস্টলেশনটি কেবল zfs-dkms এর ছিল তবে আমি নেটটিতে পড়েছি যে zfs-dkms চালানোর জন্যও spl-dkms প্রয়োজন।


আমার পদক্ষেপগুলি ছিল আমার উত্সগুলি পরিবর্তন করা list তালিকাটি অবদানহীনকে নিখরচায় যোগ করা :

/etc/apt/sources.list

deb http://ftp.nl.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.nl.debian.org/debian/ stretch main contrib non-free

deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free

# stretch-updates, previously known as 'volatile'
deb http://ftp.nl.debian.org/debian/ stretch-updates main contrib non-free
deb-src http://ftp.nl.debian.org/debian/ stretch-updates main contrib non-free

একটি ধ্রুপদী এপ-গেট আপডেট হয়ে গেল এবং তারপরে নিম্নলিখিতটি দিয়ে জেডএফএস ইনস্টল করার চেষ্টা করুন:

apt-get install spl-dkms

এবং শুধুমাত্র পরে

apt-get install zfs-dkms

ফলস্বরূপ, আমার এই ত্রুটিগুলি রয়েছে:

root@debian:/etc/apt# apt-get install zfs-dkms
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libnvpair1linux libuutil1linux libzfs2linux libzpool2linux zfs-zed zfsutils-linux

...

DKMS: install completed.
Setting up libzpool2linux (0.6.5.9-5) ...
Setting up libzfs2linux (0.6.5.9-5) ...
Setting up zfsutils-linux (0.6.5.9-5) ...
Created symlink /etc/systemd/system/zfs-mount.service.wants/zfs-import-cache.service â /lib/systemd/system/zfs-import-cac
Created symlink /etc/systemd/system/zfs.target.wants/zfs-import-cache.service â /lib/systemd/system/zfs-import-cache.serv
Created symlink /etc/systemd/system/zfs-share.service.wants/zfs-mount.service â /lib/systemd/system/zfs-mount.service.
Created symlink /etc/systemd/system/zfs.target.wants/zfs-mount.service â /lib/systemd/system/zfs-mount.service.
Created symlink /etc/systemd/system/zfs.target.wants/zfs-share.service â /lib/systemd/system/zfs-share.service.
Created symlink /etc/systemd/system/multi-user.target.wants/zfs.target â /lib/systemd/system/zfs.target.
zfs-import-scan.service is a disabled or a static unit, not starting it.
Job for zfs-mount.service failed because the control process exited with error code.
See "systemctl status zfs-mount.service" and "journalctl -xe" for details.
zfs-mount.service couldn't start.
Job for zfs-share.service failed because the control process exited with error code.
See "systemctl status zfs-share.service" and "journalctl -xe" for details.
zfs-share.service couldn't start.
Setting up zfs-zed (0.6.5.9-5) ...
Created symlink /etc/systemd/system/zed.service â /lib/systemd/system/zfs-zed.service.
Created symlink /etc/systemd/system/zfs.target.wants/zfs-zed.service â /lib/systemd/system/zfs-zed.service.
Processing triggers for libc-bin (2.24-11+deb9u1) ...

জার্নালটিএল -xe পড়া পরামর্শ হিসাবে আমি পেয়েছি:

root@debian:/etc/apt# journalctl -xe
Aug 02 23:13:13 debian systemd[1]: zfs-share.service: Main process exited, code=exited, status=1/FAILURE
Aug 02 23:13:13 debian systemd[1]: Failed to start ZFS file system shares.
-- Subject: Unit zfs-share.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit zfs-share.service has failed.
--
-- The result is failed.
Aug 02 23:13:13 debian systemd[1]: zfs-share.service: Unit entered failed state.
Aug 02 23:13:13 debian systemd[1]: zfs-share.service: Failed with result 'exit-code'.
Aug 02 23:13:13 debian systemd[1]: Starting Mount ZFS filesystems...
-- Subject: Unit zfs-mount.service has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit zfs-mount.service has begun starting up.
Aug 02 23:13:13 debian zfs[81481]: The ZFS modules are not loaded.
Aug 02 23:13:13 debian zfs[81481]: Try running '/sbin/modprobe zfs' as root to load them.
Aug 02 23:13:13 debian systemd[1]: zfs-mount.service: Main process exited, code=exited, status=1/FAILURE
Aug 02 23:13:13 debian systemd[1]: Failed to start Mount ZFS filesystems.
-- Subject: Unit zfs-mount.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit zfs-mount.service has failed.
--
-- The result is failed.
Aug 02 23:13:13 debian systemd[1]: zfs-mount.service: Unit entered failed state.
Aug 02 23:13:13 debian systemd[1]: zfs-mount.service: Failed with result 'exit-code'.
Aug 02 23:13:13 debian systemd[1]: Starting ZFS file system shares...
-- Subject: Unit zfs-share.service has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit zfs-share.service has begun starting up.
Aug 02 23:13:13 debian systemd[81483]: zfs-share.service: Failed at step EXEC spawning /usr/bin/rm: No such file or direc
-- Subject: Process /usr/bin/rm could not be executed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- The process /usr/bin/rm could not be executed and failed.
--
-- The error number returned by this process is 2.

এখানে কি সমস্যা? আমি অন্য কিছু মিস করেছি? Zfs-linux প্যাকেজটি কীভাবে zfs ইনস্টলেশন সম্পর্কিত?

ডিবিয়ান 9 এ জেডএফএস ইনস্টল করার সঠিক উপায় কী?


এর আউটপুট কি dkms status | grep zfs?
GAD3R

উত্তর:


9

@ ক্যাস দ্বারা প্রকৃত উত্তরটি ভাল তবে প্রয়োগ করতে হবে কিছু সংশোধন।

সুতরাং আসুন আমরা দেবিয়ান 9 এর একটি নতুন ইনস্টলেশনটি গ্রহণ করি এবং ধরে নিই যে অবদান ছাড়াই নিখরচায় সংগ্রহস্থলগুলিও সক্ষম নয়।


পদক্ষেপ 0 - অবদানবিহীন সংগ্রহস্থলগুলি সক্ষম করুন

আমি মূলsed শব্দটি ভিতরে আবিষ্কার করে প্রতিস্থাপন করতাম/etc/apt/sources.list

sed -i 's/main/main contrib non-free/g' /etc/apt/sources.list

apt-get update

পদক্ষেপ 1 - জেডএফএস ইনস্টলেশন

যেহেতু শেষের সমাধানগুলি spl-dkmsসঠিকভাবে zfs-dkmsনির্ভরতা হিসাবে দেখা যায় তাই এটি স্বয়ংক্রিয়ভাবে পুনরায় কল হয়ে যায় এবং এটির আগে ম্যানুয়ালি এটি ইনস্টল করার প্রয়োজন হয় না zfs-dkms। ডাবিয়ান জেডএফএস বিতরণের অভ্যন্তরের বাগের কারণে প্রতীকী লিঙ্কটি প্রয়োজন, rmএটি সঠিক অবস্থানে বাইনারি অনুসন্ধান করে না।

apt -y install linux-headers-$(uname -r)

ln -s /bin/rm /usr/bin/rm

apt-get -y install zfs-dkms

পদক্ষেপ 2 - জেডএফএস পুনঃসূচনা

এই মুহুর্তে zfs-dkms ইনস্টল করা থাকলেও এটি ত্রুটিগুলিকে নিক্ষেপ করে journalctl -xe; Zfs সঠিকভাবে ব্যবহার শুরু করতে:

/sbin/modprobe zfs

systemctl restart zfs-import-cache
systemctl restart zfs-import-scan
systemctl restart zfs-mount
systemctl restart zfs-share

পদক্ষেপ 3 - আপনি সর্বনিম্ন একটি জপপল তৈরি করতে হবে

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

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864348

"আমরা এটি করছি না কারণ জেডএফএস মডিউলগুলি কার্নেলকে কলঙ্কিত করবে, যদি কোনও জপুল না পাওয়া যায় তবে এটি লোড করা উচিত নয়।"

আপনি যদি এই অংশটি মিস করেন তবে আপনাকে পদক্ষেপ 2 থেকে শুরু করতে হবে

উদাহরণস্বরূপ, @ ক্যাস দ্বারা সরবরাহিত উদাহরণটি ব্যবহার করে আপনি এই ফাইলটি ভিত্তিক zpool তৈরি করতে পারেন বা সরাসরি আপনার ডিস্ক ভিত্তিক তৈরি করতে পারেন।

truncate -s 100M /root/z1
truncate -s 100M /root/z2
zpool create tank /root/z1 /root/z2
zpool scrub tank
zpool status

তারপরে rebootসমস্ত কিছুই কোনও ত্রুটি না নিয়ে কাজ করবেjournalctl -xe


3

অ্যাপিয়ান উত্স সংযোজনের পরে - ডেবিয়ান 9.4-এ আমার জন্য কিছুটা ভিন্নতা:

apt-get install linux-headers-amd64       # not tied to specific kernel version
apt-get install zfs-dkms zfsutils-linux   # my apt recommends is off

lsblk                                     # double-check which disks to pool

zpool create -f jeff -o ashift=12 -o autoexpand=on -o autoreplace=on mirror sdb sdd
zfs set mountpoint=/var/jeff jeff
zfs set compression=lz4 jeff
zfs create jeff/blog
zfs create jeff/docs
zfs create jeff/pics
zfs set compression=off jeff/pics

df -h

মাউন্টটি দীর্ঘশ্বাস ছাড়াই উপস্থিত ছিল না - আবিষ্কার করল যে /var/jeffকন্টেন্টের সাথে একটি বিদ্যমান রয়েছে - এটিকে সেখান থেকে সরিয়ে নিয়েছে এবং একটি reboot...

পুনরায় বুট করার পরে:

df -htzfs
Filesystem        Size  Used Avail Use% Mounted on
jeff              849G  128K  849G   1% /var/jeff
jeff/blog         850G  128K  849G   1% /var/jeff/blog
jeff/docs         856G  128K  849G   1% /var/jeff/docs
jeff/pics         850G  128K  849G   1% /var/jeff/pics

হুরয় - সমস্ত উপস্থিত এবং বিট-রট সুরক্ষিত :)


+1 তবে ডিভাইসগুলির /dev/disk/by-id/?চেয়ে ব্যবহারের জন্য দৃ strongly়ভাবে সুপারিশ করুন /dev/sd?। উভয় ক্ষেত্রেই পুকুর তৈরি করার বা পরে ঠিক যখন দ্বারা-আইডি নাম ব্যবহার zpool export <pool>দ্বারা অনুসরণ zpool import -d /dev/disk/by-id/ <pool>। এই নামগুলি, / dev / sd * এর বিপরীতে, পুনরায় বুটগুলি জুড়ে থাকবে। এছাড়াও, আপনার যদি একটি লেবেল প্রিন্টার থাকে, আপনি বাই-আইডি ডিভাইস নামের সংক্ষিপ্ত সংস্করণ সহ লেবেলগুলি মুদ্রণ করতে পারেন (সাধারণত নামেরটির একটি ক্রমিক সংখ্যার অংশ থাকে যা একটি ভাল, সংক্ষিপ্ত, অনন্য লেবেল তৈরি করে) এবং ড্রাইভগুলি তাদের লেবেল করে লেবেল করতে পারে তাদের যদি কখনও প্রতিস্থাপন করা দরকার হয় তবে সনাক্ত করা সহজ।
ক্যাস

উম্মম - তবে জেডএফএস তৈরি করার সময় ব্যবহৃত ডিস্কের এলিয়াসগুলি সম্পর্কে যত্নশীল নয় - সমস্ত তথ্য ডিস্কে zfs-part9 এ লেখা হয় - এবং অ্যারেটি নির্মাণে এটিই ব্যবহৃত হয়। ভবিষ্যতে / lsblk -fডি / এসডিবি কি অন্য কিছুতে পরিবর্তিত হয়েছিল কিনা তা আমি সত্যিই চিন্তা করি না এবং আমি সবসময় ড্রাইভ হার্ডওয়্যার দিয়ে ডিকচারিংয়ের আগে যাচাই করে দেখি - আমাদের প্রোডাকশন সার্ভারের জন্য ডেল এইচডিডি পলক সরঞ্জাম বর্তমান ওএস- সম্পর্কিত সম্পর্কিত কার্যকর শারীরিক ইউনিটের উপন্যাস :) - আমি মনে করি যে অন্যান্য মাউন্টিং সিস্টেমে জেডএফএসের ধারাবাহিকতায় বিল্ড নেই - যেমন fstab। / dev / ডিস্ক / বাই-আইডি আরও কার্যকর।
জেফ

বাই-আইডি ব্যবহার করলে আপনাকে অর্থবোধক / দরকারী নাম (প্রতিটি ড্রাইভের ব্র্যান্ড, মডেল এবং সিরিয়াল নম্বর চিহ্নিত করে) zpoolলাইক কমান্ড দেয় statusএবং listযা সহজেই কোনও প্রয়োজনীয় zpool অফলাইনে / বিচ্ছিন্ন / প্রতিস্থাপন / ইত্যাদি কমান্ডে অনুলিপি করা যায় can sdaআপনাকে দরকারী কিছু বলে না ata-ST4000VN008-2DR166_ZDH35XXXএটি ঠিক কী ধরণের ড্রাইভ এবং এর ক্রমিক নম্বর চিহ্নিত করে। আপনি এখনও (বর্তমান) সংক্ষিপ্ত দেব নাম পেতে পারেন যদি কখনও তাদের ব্যবহার করতে চান, -Lসঙ্গে বিকল্প zpool list, zpool status, ইত্যাদি (আমার অভিজ্ঞতা, বেশিরভাগ সঙ্গে দরকারে zpool list -L -v)।
কাস

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

লল - প্রচুর ভাবেন একই পরামর্শ দেয় - আমার ব্যক্তিগতভাবে এসডিসি এসডি এসডিএফ এবং এসডিজি মনে রাখা এবং টাইপ করা সহজ মনে হয়। আমরা ব্যাচগুলিতে ডিস্ক কিনি এবং সেগুলি একই 48 বা ততোধিক বাই আইডি অক্ষর দিয়ে শুরু হয় এবং কেবল 2-4 ডিজিটের প্রত্যয় রয়েছে যা পৃথক। লোকেরা বাই-আইডি নাম টাইপ করে না - তারা ট্যাব-সমাপ্তি ব্যবহার করে - উফ আইএমএইচও হওয়ার সম্ভাবনা বেশি থাকে। আমি একটি 52 টি চর নামের 2-2 সংখ্যার চেয়ে তিন-চরে একটি অক্ষরকে পৃথক করে দেখতে পাই। আমি জানি যে প্রচুর লোকেরা ইউইউডি-র প্রস্তাবও দেয়। জেডএফএসের কোনও যত্ন নেই বলে আমি মনে করি যে আমি যা সহজ মনে করি তার সাথে আঁকড়ে থাকব - কখনও কখনও কম হয় :)
জেফ

3

এটি পরীক্ষা করার জন্য আমি কেবল একটি নতুন প্রসারিত ভিএম তৈরি করেছি। ন্যূনতম ইনস্টল করুন (কেবলমাত্র এসএসএস এবং মানক সিস্টেম সরঞ্জাম), অবদান যোগ করতে এবং মুক্ত-মুক্ত করতে সোর্স.লিস্ট সম্পাদনা করুন, তারপরে:

apt-get install spl-dkms zfs-dkms

আপনি ম্যানুয়ালি ইনস্টল করতে চাইতে পারেন zfsutils-linux। এটি ইনস্টল করার সময় এটি স্বয়ংক্রিয়ভাবে ইনস্টল হওয়া উচিত zfs-dkmsতবে বিভিন্ন দেবিয়ান প্রকাশ এবং দেবিয়ান জোলএল প্যাকেজের বিভিন্ন সংস্করণের জন্য নির্ভরতাগুলি পৃথক হতে পারে:

apt-get install  zfsutils-linux

দেখে মনে হচ্ছে এটির জন্য সিস্টেমড ইউনিট ফাইলে কোনও বাগ রয়েছে zfs-share। এটি /usr/bin/rmপরিবর্তে চালানোর চেষ্টা করা হয় /bin/rm

দ্রুত ফিক্সটি চালানো ln -s /bin/rm /usr/bin, বা বিকল্পভাবে:

cd /etc/systemd/system
cp -a /lib/systemd/system/zfs-share.service .
edit zfs-share.service and change `/usr/bin/rm` to `/bin/rm`

এবং তারপরে zfs পরিষেবাদি পুনরায় চালু করুন:

systemctl restart zfs-import-cache
systemctl restart zfs-import-scan
systemctl restart zfs-mount
systemctl restart zfs-share

দ্রষ্টব্য: আমি modprobe zfsকোনও zfs পরিষেবা পুনরায় চালু করার আগে ম্যানুয়ালি দৌড়েছি ran আমি নিশ্চিত নই যে তারা এটি স্বয়ংক্রিয়ভাবে করবে বা না, তাই আপনারও এটি করার প্রয়োজন হতে পারে।

বিটিডাব্লু, আপনি সম্ভবত apt-get install zfs-initramfsতাও চাইবেন, তা নিশ্চিত করতে যে zfs টি initramfs চলাকালীন লোড হয়েছে।


আমি পরীক্ষা করেছি যে এটি এর সাথে কাজ করে:

# truncate -s 100M /root/z1
# truncate -s 100M /root/z2
# zpool create tank mirror /root/z1 /root/z2 

# zfs set compression=lz4 tank
# rsync -ax /etc /tank/
# du -sch /etc /tank/etc/
3.5M    /etc
825K    /tank/etc/
4.3M    total

# zpool scrub tank
# zpool status
  pool: tank
 state: ONLINE
  scan: scrub repaired 0 in 0h0m with 0 errors on Thu Aug  3 19:28:21 2017
config:

    NAME          STATE     READ WRITE CKSUM
    tank          ONLINE       0     0     0
      mirror-0    ONLINE       0     0     0
        /root/z1  ONLINE       0     0     0
        /root/z2  ONLINE       0     0     0

errors: No known data errors

Zpool কাজ করছে এবং / ট্যাঙ্কটি রিবুটের পরে স্বয়ংক্রিয়ভাবে সজ্জিত।

উপসংহার: এটি এখন কাজ করে।


বিটিডাব্লু, এই প্রসারিত ভিএম আমার প্রধান sidসিস্টেমে তৈরি হওয়া একটি জেডএফএস জেডভোলকে তার ডিস্ক হিসাবে ব্যবহার করে। আমি একটি স্ন্যাপশট তৈরি করেছি যদি এটি প্রাথমিক ইনস্টলেশন হওয়ার সাথে সাথেই, spl-dkms এবং zfs-dkms ইনস্টল করার আগে আমি দ্রুত আবার ফিরে যেতে পারি এবং কোনও বড় ভুল হয়ে থাকলে আবার শুরু করতে পারি।

আমি প্রথমে মাত্র 1 জিবি দিয়ে জেডভোলটি তৈরি করেছিলাম এবং পরে এটি বাড়ানোর দরকার ছিল বিল্ড-প্রয়োজনীয়, লিনাক্স-শিরোনাম-এএমডি 64 ইত্যাদির জন্য পর্যাপ্ত জায়গা থাকতে:

# zfs list -r -t all export/volumes/stretch
NAME                                         USED  AVAIL  REFER  MOUNTPOINT
export/volumes/stretch                      6.25G   834G  1.77G  -
export/volumes/stretch@2017-08-03-18:31:04   279M      -  1.09G  -

compression=lz4ভিএম-তে ট্যাঙ্ক স্থাপন সম্ভবত বেহুদা চেয়ে খারাপ - zvol ইতিমধ্যে এটিতে lz4 সংক্ষেপণ রয়েছে।


আমি এটি একটি নতুন নতুন ভিএম এ ইনস্টল করার চেষ্টা করেছি তবে আমার অনুমানের পরেও আমি সমস্যাগুলির মুখোমুখি হয়েছি .. কিছু পরিষেবা সঠিকভাবে শুরু হচ্ছে না .. যতদূর আমি দেখতে পাচ্ছি জেডএফএস ডি কেএমএস বাগ তালিকাটি "ইনস্টল করতে পারে না" বাগগুলি ভরে গেছে রিপোর্ট। আমি ভাবছি যদি স্বাভাবিক হয় যে বিকাশকারীরা এতগুলি বাগফিক্স অনুরোধের পরে মাসগুলিকে কেবল প্রযোজনীয়যোগ্য zfs-dkms ইনস্টল করার অনুরোধ জানায় ..
ব্যবহারকারী 3450548

যে অংশে আপনি সিডি ডিরেক্টরিটি চেয়েছিলেন তার অর্থ: / ইত্যাদি / সিস্টেমড / সিস্টেম /? কারণ / etc / systemd / পরিষেবাদি অস্তিত্বহীন .. এছাড়াও আমার এই বার্তাটি রয়েছে: "zfs-Import-Mount.service: ইউনিট zfs-আমদানি-মাউন্ট.সার্ভিস পাওয়া যায় নি।" এবং "zfs-Import-share.service: ইউনিট zfs-Import-share.service পাওয়া যায়নি পুনরায় আরম্ভ করতে ব্যর্থ।"
ব্যবহারকারী 3450548

দেখে মনে হচ্ছে জেডএফএস-জেডএইড সার্ভিসে জার্নাক্টেল-এক্স পড়ার মাধ্যমে আমারও সমস্যা আছে: আগস্ট 11 23:03:23 ডিবিয়ান জেড [70734]: জেডএফএস ইভেন্ট ডেমন 0.6.5.9-5 (পিআইডি 70734) আগস্ট 11 23:03:23 ডিবিয়ান জেড [70734]: লাইবজফগুলি আরম্ভ করতে ব্যর্থ 11 আগস্ট 23:03:23 ডেবিয়ান সিস্টেমড [1]: zfs-zed.service: মূল প্রক্রিয়াটি প্রস্থান হয়েছে, কোড = বহির্গমন হয়েছে, স্থিতি = 1 / ব্যর্থ আগস্ট 11 23:03:23 ডিবিয়ান সিস্টেমড [1]: zfs-zed.service: ইউনিট ব্যর্থ স্থানে প্রবেশ করেছে। আগস্ট 11 23:03:23 ডিবিয়ান সিস্টেমড [1]: zfs-zed.service: ফলাফল 'প্রস্থান-কোড' দিয়ে ব্যর্থ।
ব্যবহারকারী 3450548
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.