Joes Rules to Asking for Help

Purpose: To assist people posting clear and informative requests for help and to define the absolute minimum information required in order to provide the helper what is needed and to reduce assumptions.

EDIT: I have moved the specific areas of interest to separate entries below.
Please read Joes Rules before posting anything

Drive Failures
Drive Speed Tests
Network Issues
Software Issues
Build Advice

Joes Rules

  1. Be considerate. This rule applies to both the person asking a question as well as the person providing the answer.

  2. Do not “assume” we understand what you are talking about. We may be good with a lot of things but mind reading is not one of them. Be detailed in your question so we can minimize assumptions. All the steps below are presented to assist in minimizing the time we waste sending messages back and forth to pull data out of a user. This also leads to more accurate and faster diagnosis.

  3. Do not link to external sources where you might have a photo or image, instead include images in our forum. No one likes to click on an unknown link these days.

  4. IMPORTANT: When posting the output of TrueNAS (one of the commands listed here), ensure you including the resulting output in the code “</>” format to maintain the proper character spacing, which can be critical.

  5. When asking a question, ensure you provide the bare minimum system information as well:
    The absolute minimum is: Include any error messages, TrueNAS Version, Motherboard, RAM Qty, CPU Make/Model, NIC - RealTek, Intel, etc. If you know, Hard Drive(s) Make/Model. This gives us a general idea what we are dealing with.

    Note: Depending on the problem, some of the information requested may actually not be needed but it is better to include it and not need it, than need it and not have it.)

Provide additional information for the given error and while it may not be all inclusive, the items below are generally some of the first things asked, and you may be asked to provide more specific information.

Examples of bad postings

“Yo, my TrueNAS system just died. I think my data is gone. HELP, PLEASE!”

What are we missing?, well all the minimum data required. Is this CORE, SCALE, what version number, do you have enough RAM, is the CPU proper for the use case or maybe problematic, and the NIC if an add-on card. Oh yea, not very specific with “my TrueNAS system just died”. This can be interpreted many ways, so reduce the ability for us to make too many assumptions. What is clear in your head will not necessarily be clear to us, this is so very true.

Another bad example:
“I’ve been running FreeNAS 12 for a few years and now I have a hard drive failure. How do I know which drive to replace and how do I do that?”

What are we missing?, most of the minimum requested data but also the data from step 6 above. And you didn’t bother to read the User Guide which tells you how to replace a drive.

Summary:
If you haven’t done any legwork on your own, search for the specific problem you have, Google can find a lot that can help you. Read the User Guide (you should do that now anyway). When you post a problem, include all the minimum data. And above all, do not let us assume anything. My crystal ball broke a few years ago and I was unable to fix it.

I missed one item… Make the thread title something accurate. “System died” is not a very good one or “Help Me” (yes we have seen those), however “System died with hard drive errors” or “System died after puff of magic smoke escaped”.

Joes Rules to Answering a question, any question. (This is a long read)
Why do we need rules for those folks offering help to the others? To keep the peace and a friendly forum.

Many of us who have been here for a long time tend to see the same questions over and over. We may feel like a person is being lazy, or stupid, or whatever, and that may or maynot be the case. Sometimes when I feel frustrated, I just reduce my visiting time on the forum or stop for a while until I’m ready to continue. My only exception is Multi-Report as I enjoy supporting that for as long as it is needed. There are a lot of language barriers here and that can also lead to confusion which leads to frustration.

Do your best to curb answering a question while you feel frustrated. You do not have to answer a question just because you know the answer. We are all volunteers here and originally came to this forum for help as well, but migrated to helping others out. If you are not enjoying it then my advice is to take a break. Some people have taken extended breaks or just left the forum all together and I understand it. The three rules here are very short and simple.

  1. Be considerate.
  2. If you feel frustrated, don’t answer the question as your frustration will likely come across and you will say something that we all want to say however it is not appropriate. I have done this myself.
  3. Assume the person you are helping knows nothing at all when answering the question, anything less is an assumption.

This thread is closed and I will update as I can, make it formatted nicer, but the goal of this posting is to simply have people post better data when asking for help.

If you have a suggestion to modify this posting, please send me a message. I would be fine in making this more inclusive as I feel this will actually help the people who need to troubleshoot a problem.

TESTS (If you have a specific test you want added for troubleshooting purposes, send me a message, I will need specific instructions and if it is for CORE, SCALE, or both)
This section is on basic tests you should run before posting your question and post the results. When posting results, include the “Exact” commands you used to produce those results. Why? Because people may ‘typos’, I know I do and I"m not the only one. This goes to the rule of “Assumption”, don’t allow it.
These tests are not to groom your system, these are used to troubleshoot a real problem. This posting is only to provide you with commands that generate a result that you might be asked to provide. And you should provide it even before asked if you can.

Unless otherwise stated, the commands should work on both CORE and SCALE.

EDIT: I invite any moderator to edit this posting/thread as needed. This is meant to help the group and Joe is not all knowing, in spite of what you have heard :wink:.
You know my goal is to just get the ball rolling in the right direction. Including additional “nice to have” data is great, provided it is marked as extra stuff that may speed up the troubleshooting process and not a minimum requirement. I really hope this helps the community.

By the way, I was unaware of this resource which posted a few days before my posting. Great minds think alike, or at least along the same lines.

24 Likes

Drive Failures
Provide additional information for the given error and while it may not be all inclusive, the items below are generally some of the first things asked, and you may be asked to provide more specific information.

  1. If Drive or Pool is suspect: if a pool, data corruption, or suspect drive failure, include the output of the following commands:
    a. zpool status -v
    b. zpool list (for size/capacity questions)
    c. zfs list (for dataset questions)
    d. smartctl -x /dev/DRIVEID (for drive questions. DRIVEID = ‘ada0’ or ‘sda’ for example.) Please do not remove any of the output, except you can remove the serial number if desired.
    Advice: Always track your drives using the serial number, the DRIVE ID can change on you, it is not fixed to a specific drive. Use the serial number so you know which drive to replace if required.
    e. sas2flash or sas3flash
    f. lsblk (SCALE Only)

Drive Speed Tests

Unless otherwise stated, the commands should work on both CORE and SCALE.

Drive Speed Tests: This is for any perceived drive transfer speed issues, which also include network transfer speeds.

  1. The dd command will provide you general speed throughput of your pool. These instructions are not meant for grooming and can also identify other system speed issues.
  2. From an SSH or Shell window, enter pwd to display the directory you are using. Use cd to to change to a dataset. (example: cd /mnt/pool/testing_dataset) assuming you have a pool called ‘pool’ and a dataset called ‘testing_dataset’.
  3. Enter dd if=/dev/urandom of=temporary.dat bs=2048k count=50k and you may need to wait a while for a result to return as we are creating a 100GB file using pseudo-random data vice using ‘zero’.
  4. Enter dd if=temporary.dat of=/dev/null bs=2048k count=50k and this should take less time.
  5. While not absolutely required, Reboot TrueNAS and then perform steps 2 and 4 again. This will ensure the data was not cached and you can compare the two results.
  6. Enter rm temporary.dat to remove the file we just created.
Example of my home NVMe system (I am using my 'scripts' dataset):
root@truenas[~]# pwd
/root
root@truenas[~]# cd /mnt/farm/scripts
root@truenas[/mnt/farm/scripts]# dd if=/dev/urandom of=temp.dat bs=2048k count=50k
51200+0 records in
51200+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 188.84 s, 569 MB/s
root@truenas[/mnt/farm/scripts]# dd if=temp.dat of=/dev/null bs=2048k count=50k
51200+0 records in
51200+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 22.6655 s, 4.7 GB/s

Reboot

root@truenas[/mnt/farm/scripts]# dd if=temp.dat of=/dev/null bs=2048k count=50k
51200+0 records in
51200+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 23.5447 s, 4.6 GB/s

The same commands on my spinning rust machine results in much lower results, of course.

Write: 107374182400 bytes transferred in 368.208744 secs (291612256 bytes/sec)
Read: 107374182400 bytes transferred in 333.007773 secs (322437466 bytes/sec)

Network / Connectivity

Provide additional information for the given error and while it may not be all inclusive, the items below are generally some of the first things asked, and you may be asked to provide more specific information.

If Network / Connectivity is suspect: if you are having a slow network speed provide the following:
a. Describe in detail the issue and what you have done to troubleshoot the issue.
b. A slow perceived network connection could be the cause of a slow pool so use ‘dd’ (in the test section below) to test the read/write speed of the pool.
c. Have you used iperf to verify network throughput speed?
d. You may be asked to provide the output of the following commands:
i. lspci and/or lspci -v (SCALE Only)
ii. ifconfig -a Please do not remove any of the output, except you can remove the serial number if desired.
Advice: Always track your drives using the serial number as the DRIVE ID can change on you, it is not fixed to a specific drive. Use the serial number so you know which drive to replace if required.

Software

If Software: If a stability problem (the system reboots, freezes, strange operations out of the blue)
a. Did you recently (in the past 7 days), make ANY changes to TrueNAS? This could be making Administrative changes, updating TrueNAS to a new version, open the computer to do ANYTHING at all, move the computer. There are many things that can cause a system to become unstable, just think hard about it.
b. Did you run a Memory Stress Test such as ‘Memtest86’ and did you run it for 4 complete passes minimum? And the results. (A failure here could be faulty RAM, Motherboard, CPU, Power Supply, or heat saturation in the system, or the motherboard BIOS setup incorrectly especially for over-clockers).
c. Did you run a CPU Stress test such as ‘Prime95’ for at least 30 minutes? And the results. (A failure here could be due to a poorly installed heatsink, Motherboard, RAM, Power Supply, or heat saturation in the system)
d. Is there an issue with the GUI? As always, be very descriptive with the problem.
e. Is there a Permissions issue? Try to be specific here as well. What is the problem and what are you trying to accomplish.

If you discover a software bug, file a bug report.

General System Build Advice Questions

We get a lot of these so please consider the items listed below before posting.

If you are just asking for advice, especially about building a system of your own, Have you searched TrueNAS forums first. There are a bazillion postings about building a system. The most important part is this question: What is your use case? This means what are your intension’s’ for this system build? Just a NAS, a Media Streaming Super Computer, Block Storage, etc. If you are unclear on the exact terminology then take your time and explain what you desire.

Create a listing of your system Requirements and yes, write them down as they will likely change as you determine what you want.
A. Capacity
B. Network Speed
C. Access to data speed (how fast the drives can present the data)
D. Will you be supporting iSCSI
E. How many people will be using it at the same time?
F. Think about everything and put that list together, only then will you be able to shop for the correct parts to build this system. And if you think you will be able to do this on an old Amiga computer, that will not happen. If you need a serious NAS, buy proper components. The drives and fans will be replaced and are considered consumable, the other parts are likely to last for the duration of the project you have in mind (10+ years).
G. Cost. This is a big factor but please understand, you will unlikely find a high speed machine that is quiet and cheap. The above listed items should be the priority first.

1 Like